]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/inifile/lib/puppet/provider/ini_subsetting/ruby.rb
add puppetlabs/inifile to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / inifile / lib / puppet / provider / ini_subsetting / ruby.rb
1 require File.expand_path('../../../util/ini_file', __FILE__)
2 require File.expand_path('../../../util/setting_value', __FILE__)
3
4 Puppet::Type.type(:ini_subsetting).provide(:ruby) do
5
6   def exists?
7     setting_value.get_subsetting_value(subsetting)
8   end
9
10   def create
11     setting_value.add_subsetting(subsetting, resource[:value])
12     ini_file.set_value(section, setting, setting_value.get_value)
13     ini_file.save
14     @ini_file = nil
15     @setting_value = nil
16   end
17
18   def destroy
19     setting_value.remove_subsetting(subsetting)
20     ini_file.set_value(section, setting, setting_value.get_value)
21     ini_file.save
22     @ini_file = nil
23     @setting_value = nil
24   end
25
26   def value
27     setting_value.get_subsetting_value(subsetting)
28   end
29
30   def value=(value)
31     setting_value.add_subsetting(subsetting, resource[:value])
32     ini_file.set_value(section, setting, setting_value.get_value)
33     ini_file.save
34   end
35
36   def section
37     resource[:section]
38   end
39
40   def setting
41     resource[:setting]
42   end
43
44   def subsetting
45     resource[:subsetting]
46   end
47
48   def subsetting_separator
49     resource[:subsetting_separator]
50   end
51
52   def file_path
53     resource[:path]
54   end
55
56   def separator
57     resource[:key_val_separator] || '='
58   end
59
60   def quote_char
61     resource[:quote_char]
62   end
63
64   private
65   def ini_file
66     @ini_file ||= Puppet::Util::IniFile.new(file_path, separator)
67   end
68
69   def setting_value
70     @setting_value ||= Puppet::Util::SettingValue.new(ini_file.get_value(section, setting), subsetting_separator, quote_char)
71   end
72
73 end