Pass envMap to parseLine & parseValue

pull/47/head
Takumasa Sakao 2017-11-20 22:21:39 +09:00
parent 6d367c18ed
commit 9be76b3741
2 changed files with 6 additions and 6 deletions

View File

@ -112,7 +112,7 @@ func Parse(r io.Reader) (envMap map[string]string, err error) {
for _, fullLine := range lines {
if !isIgnoredLine(fullLine) {
var key, value string
key, value, err = parseLine(fullLine)
key, value, err = parseLine(fullLine, envMap)
if err != nil {
return
@ -209,7 +209,7 @@ func readFile(filename string) (envMap map[string]string, err error) {
return Parse(file)
}
func parseLine(line string) (key string, value string, err error) {
func parseLine(line string, envMap map[string]string) (key string, value string, err error) {
if len(line) == 0 {
err = errors.New("zero length string")
return
@ -259,11 +259,11 @@ func parseLine(line string) (key string, value string, err error) {
key = strings.Trim(key, " ")
// Parse the value
value = parseValue(splitString[1])
value = parseValue(splitString[1], envMap)
return
}
func parseValue(value string) string {
func parseValue(value string, envMap map[string]string) string {
// trim
value = strings.Trim(value, " ")

View File

@ -11,7 +11,7 @@ import (
var noopPresets = make(map[string]string)
func parseAndCompare(t *testing.T, rawEnvLine string, expectedKey string, expectedValue string) {
key, value, _ := parseLine(rawEnvLine)
key, value, _ := parseLine(rawEnvLine, noopPresets)
if key != expectedKey || value != expectedValue {
t.Errorf("Expected '%v' to parse as '%v' => '%v', got '%v' => '%v' instead", rawEnvLine, expectedKey, expectedValue, key, value)
}
@ -280,7 +280,7 @@ func TestParsing(t *testing.T) {
// it 'throws an error if line format is incorrect' do
// expect{env('lol$wut')}.to raise_error(Dotenv::FormatError)
badlyFormattedLine := "lol$wut"
_, _, err := parseLine(badlyFormattedLine)
_, _, err := parseLine(badlyFormattedLine, noopPresets)
if err == nil {
t.Errorf("Expected \"%v\" to return error, but it didn't", badlyFormattedLine)
}