Update README.md

This commit is contained in:
Álvaro López Espinosa 2017-02-09 11:02:18 +00:00 committed by GitHub
parent 5b38bf6a65
commit fbb114e61f
1 changed files with 6 additions and 5 deletions

View File

@ -72,9 +72,9 @@ pillJSON := Aspirin.MarshalJSON()
The generated code is exactly the same as the Stringer tool plus the mentioned additions, so you can use The generated code is exactly the same as the Stringer tool plus the mentioned additions, so you can use
**Enumer** where you are already using **Stringer** without any code change. **Enumer** where you are already using **Stringer** without any code change.
## Enum value string representation transformation ## Transforming the string representation of the enum value
Stringer tool uses the same name for enum value string representation (usually CamelCase in Go). By default, Enumer uses the same name of the enum value for generating the string representation (usually CamelCase in Go).
```go ```go
type MyType int type MyType int
@ -84,15 +84,16 @@ type MyType int
name := MyTypeValue.String() // name => "MyTypeValue" name := MyTypeValue.String() // name => "MyTypeValue"
``` ```
Sometimes you need to use some other string representation format then CamelCase (i.e. in JSON). Sometimes you need to use some other string representation format than CamelCase (i.e. in JSON).
To transform enum value string representation from CamelCase to snake_case or kebab-case `transform` flag could be used. To transform it from CamelCase to snake_case or kebab-case, you can use the `transform` flag.
For example, for `enumer -type=MyType -json -transform=snake` command the next string representation will be generated: For example, the command `enumer -type=MyType -json -transform=snake` would generate the following string representation:
```go ```go
name := MyTypeValue.String() // name => "my_type_value" name := MyTypeValue.String() // name => "my_type_value"
``` ```
**Note**: The transformation only works form CamelCase to sanake_case or kebab-case, not the other way around.
## How to use ## How to use
The usage of Enumer is the same as Stringer, so you can refer to the [Stringer docs](https://godoc.org/golang.org/x/tools/cmd/stringer) The usage of Enumer is the same as Stringer, so you can refer to the [Stringer docs](https://godoc.org/golang.org/x/tools/cmd/stringer)