Skip to content

Commit

Permalink
Merge pull request puppetlabs#126 from huan/master
Browse files Browse the repository at this point in the history
fix issue where single characters settings were not being saved.
  • Loading branch information
Morgan Haskel committed Nov 6, 2014
2 parents d968747 + 4415779 commit 0b3895f
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
4 changes: 2 additions & 2 deletions lib/puppet/util/ini_file.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ module Util
class IniFile

@@SECTION_REGEX = /^\s*\[([^\]]*)\]\s*$/
@@SETTING_REGEX = /^(\s*)([^\[#;][\w\d\.\\\/\-\s\[\]\']*[\w\d\.\\\/\-\]])([ \t]*=[ \t]*)([\S\s]*?)\s*$/
@@COMMENTED_SETTING_REGEX = /^(\s*)[#;]+(\s*)([^\[]*[\w\d\.\\\/\-]+[\w\d\.\\\/\-\[\]\']+)([ \t]*=[ \t]*)([\S\s]*?)\s*$/
@@SETTING_REGEX = /^(\s*)([\w\d\.\\\/\-\s\[\]\']*[\w\d\.\\\/\-\]])([ \t]*=[ \t]*)([\S\s]*?)\s*$/
@@COMMENTED_SETTING_REGEX = /^(\s*)[#;]+(\s*)([\w\d\.\\\/\-\s\[\]\']*[\w\d\.\\\/\-\]])([ \t]*=[ \t]*)([\S\s]*?)\s*$/

def initialize(path, key_val_separator = ' = ')
@path = path
Expand Down
22 changes: 15 additions & 7 deletions spec/unit/puppet/util/ini_file_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,12 @@
foo= foovalue2
baz=bazvalue
; commented = out setting
#another comment
; yet another comment
zot = multi word value
xyzzy['thing1']['thing2']=xyzzyvalue
l=git log
EOS
template.split("\n")
}
Expand All @@ -45,13 +47,19 @@
end

it "should expose settings for sections" do
subject.get_value("section1", "foo").should == "foovalue"
subject.get_value("section1", "bar").should == "barvalue"
subject.get_value("section1", "baz").should == ""
subject.get_value("section2", "foo").should == "foovalue2"
subject.get_value("section2", "baz").should == "bazvalue"
subject.get_value("section2", "zot").should == "multi word value"
subject.get_value("section2", "xyzzy['thing1']['thing2']").should == "xyzzyvalue"
subject.get_settings("section1").should == {
"bar" => "barvalue",
"baz" => "",
"foo" => "foovalue"
}

subject.get_settings("section2").should == {
"baz" => "bazvalue",
"foo" => "foovalue2",
"l" => "git log",
"xyzzy['thing1']['thing2']" => "xyzzyvalue",
"zot" => "multi word value"
}
end

end
Expand Down

0 comments on commit 0b3895f

Please sign in to comment.