Merge pull request #277 from hashicorp/decode-string-booleans
Decode string booleans
This commit is contained in:
commit
cf7d376da9
@ -535,7 +535,7 @@ func (d *decoder) decodeString(name string, node ast.Node, result reflect.Value)
|
||||
switch n := node.(type) {
|
||||
case *ast.LiteralType:
|
||||
switch n.Token.Type {
|
||||
case token.NUMBER:
|
||||
case token.NUMBER, token.FLOAT, token.BOOL:
|
||||
result.Set(reflect.ValueOf(n.Token.Text).Convert(result.Type()))
|
||||
return nil
|
||||
case token.STRING, token.HEREDOC:
|
||||
|
@ -951,6 +951,28 @@ func TestDecode_float64(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDecode_string(t *testing.T) {
|
||||
type value struct {
|
||||
A string `hcl:"a"`
|
||||
B string `hcl:"b"`
|
||||
C string `hcl:"c"`
|
||||
D string `hcl:"d"`
|
||||
E string `hcl:"e"`
|
||||
}
|
||||
|
||||
got := value{}
|
||||
err := Decode(&got, testReadFile(t, "string.hcl"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
want := value{"s", "2", "2.718", "true", "false"}
|
||||
if !reflect.DeepEqual(want, got) {
|
||||
t.Fatalf("expected %#v; got %#v", want, got)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestDecode_intStringAliased(t *testing.T) {
|
||||
var value struct {
|
||||
Count time.Duration
|
||||
|
5
test-fixtures/string.hcl
Normal file
5
test-fixtures/string.hcl
Normal file
@ -0,0 +1,5 @@
|
||||
a = "s"
|
||||
b = 2
|
||||
c = 2.718
|
||||
d = true
|
||||
e = false
|
Loading…
Reference in New Issue
Block a user