Skip to content

Commit 5d70baf

Browse files
committed
Merge pull request #158 from bmjen/modules-1876-fix
Modules 1876 - Setting names containing spaces fail
2 parents 70c7fb2 + 69bee20 commit 5d70baf

3 files changed

Lines changed: 28 additions & 6 deletions

File tree

lib/puppet/util/ini_file.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ def initialize(path, key_val_separator = ' = ')
1010
k_v_s = key_val_separator.strip
1111

1212
@@SECTION_REGEX = /^\s*\[([^\]]*)\]\s*$/
13-
@@SETTING_REGEX = /^(\s*)([^\s#{k_v_s}]*)(\s*#{k_v_s}\s*)(.*)\s*$/
14-
@@COMMENTED_SETTING_REGEX = /^(\s*)[#;]+(\s*)([^\s#{k_v_s}]*)(\s*#{k_v_s}[ \t]*)(.*)\s*$/
15-
13+
@@SETTING_REGEX = /^(\s*)([^#;\s]|[^#;\s].*?[^\s#{k_v_s}])(\s*#{k_v_s}\s*)(.*)\s*$/
14+
@@COMMENTED_SETTING_REGEX = /^(\s*)[#;]+(\s*)(.*?[^\s#{k_v_s}])(\s*#{k_v_s}[ \t]*)(.*)\s*$/
1615

1716
@path = path
1817
@key_val_separator = key_val_separator

spec/acceptance/ini_setting_spec.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,10 @@
147147

148148
describe 'section, setting, value parameters' do
149149
{
150-
"section => 'test', setting => 'foo', value => 'bar'," => /\[test\]\nfoo = bar/,
151-
"section => 'more', setting => 'baz', value => 'quux'," => /\[more\]\nbaz = quux/,
152-
"section => '', setting => 'top', value => 'level'," => /top = level/,
150+
"section => 'test', setting => 'foo', value => 'bar'," => /\[test\]\nfoo = bar/,
151+
"section => 'more', setting => 'baz', value => 'quux'," => /\[more\]\nbaz = quux/,
152+
"section => '', setting => 'top', value => 'level'," => /top = level/,
153+
"section => 'z', setting => 'sp aces', value => 'foo bar'," => /\[z\]\nsp aces = foo bar/,
153154
}.each do |parameter_list, content|
154155
context parameter_list do
155156
pp = <<-EOS

spec/unit/puppet/util/ini_file_spec.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,4 +262,26 @@
262262
subject.get_value("Drive names", "C:").should eq 'Winchester'
263263
end
264264
end
265+
266+
context 'Configuration with spaces in setting names' do
267+
let(:sample_content) do
268+
template = <<-EOS
269+
[global]
270+
# log files split per-machine:
271+
log file = /var/log/samba/log.%m
272+
273+
kerberos method = system keytab
274+
passdb backend = tdbsam
275+
security = ads
276+
EOS
277+
template.split("\n")
278+
end
279+
280+
it "should expose settings for sections" do
281+
subject.get_value("global", "log file").should eq '/var/log/samba/log.%m'
282+
subject.get_value("global", "kerberos method").should eq 'system keytab'
283+
subject.get_value("global", "passdb backend").should eq 'tdbsam'
284+
subject.get_value("global", "security").should eq 'ads'
285+
end
286+
end
265287
end

0 commit comments

Comments
 (0)