From fbd59e7d3000ec1425402bf4d942e5150807fc03 Mon Sep 17 00:00:00 2001 From: raziman Date: Thu, 18 Feb 2021 10:20:37 +0800 Subject: [PATCH] allow Get{Int,String,Bool} to access symbol inside Module --- anko/anko.go | 6 +++--- anko/anko_test.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/anko/anko.go b/anko/anko.go index 2687b1b..f61992f 100644 --- a/anko/anko.go +++ b/anko/anko.go @@ -42,7 +42,7 @@ func (a *Anko) Get(symbol string) (interface{}, error) { // GetInt gets int value from symbol, returns golang default value if not found. func (a *Anko) GetInt(symbol string) int { - v, err := a.env.Get(symbol) + v, err := a.Execute(symbol) if err != nil { return 0 } @@ -60,7 +60,7 @@ func (a *Anko) GetInt(symbol string) int { // GetString gets string value from symbol, returns golang default value if not // found. func (a *Anko) GetString(symbol string) string { - v, err := a.env.Get(symbol) + v, err := a.Execute(symbol) if err != nil { return "" } @@ -76,7 +76,7 @@ func (a *Anko) GetString(symbol string) string { // GetBool gets bool value from symbol, returns golang default value if not // found. func (a *Anko) GetBool(symbol string) bool { - v, err := a.env.Get(symbol) + v, err := a.Execute(symbol) if err != nil { return false } diff --git a/anko/anko_test.go b/anko/anko_test.go index 2b7b711..037faa6 100644 --- a/anko/anko_test.go +++ b/anko/anko_test.go @@ -62,6 +62,17 @@ func TestGetInt(t *testing.T) { got := a.GetInt("x") assert.Equal(t, expect, got) + _, err = a.Execute(`module S { x = 10 }`) + if err != nil { + t.Error(err) + } + + got = a.GetInt("S.x") + assert.Equal(t, expect, got) + + got = a.GetInt("S.y") + assert.Equal(t, 0, got) + a.Define("z", expect) val := a.GetInt("z") @@ -80,6 +91,17 @@ func TestGetString(t *testing.T) { got := a.GetString("x") assert.Equal(t, expect, got) + _, err = a.Execute(`module S { x = "bruhh" }`) + if err != nil { + t.Error(err) + } + + got = a.GetString("S.x") + assert.Equal(t, expect, got) + + got = a.GetString("S.y") + assert.Equal(t, "", got) + a.Define("z", expect) val := a.GetString("z") @@ -91,6 +113,17 @@ func TestGetBool(t *testing.T) { a := NewAnko() a.Define("x", expect) + _, err := a.Execute(`module S { x = true }`) + if err != nil { + t.Error(err) + } + + got := a.GetBool("S.x") + assert.Equal(t, expect, got) + + got = a.GetBool("S.y") + assert.Equal(t, false, got) + result := a.GetBool("x") assert.Equal(t, expect, result) }