Class: ConfigStruct
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- ConfigStruct
- Defined in:
- lib/config_struct.rb
Instance Method Summary collapse
- #addvalues ⇒ Object
- #default(var, value) ⇒ Object
-
#initialize(options = nil, input = STDIN, output = STDOUT) ⇒ ConfigStruct
constructor
A new instance of ConfigStruct.
- #prepare_dirs ⇒ Object
- #set_defaults ⇒ Object
- #setup ⇒ Object
- #write(values) ⇒ Object
Constructor Details
#initialize(options = nil, input = STDIN, output = STDOUT) ⇒ ConfigStruct
6 7 8 9 10 11 |
# File 'lib/config_struct.rb', line 6 def initialize( = nil, input = STDIN, output = STDOUT) super() set_defaults prepare_dirs addvalues end |
Instance Method Details
#addvalues ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/config_struct.rb', line 22 def addvalues setup unless File.exist? self.basefile YAML.load_file(self.basefile).each do |k, v| new_ostruct_member(k) send("#{k}=", v) end end |
#default(var, value) ⇒ Object
34 35 36 |
# File 'lib/config_struct.rb', line 34 def default(var, value) send(var).nil? && send("#{var}=", value) end |
#prepare_dirs ⇒ Object
18 19 20 |
# File 'lib/config_struct.rb', line 18 def prepare_dirs FileUtils.mkdir_p self.basedir unless Dir.exist? self.basedir end |
#set_defaults ⇒ Object
13 14 15 16 |
# File 'lib/config_struct.rb', line 13 def set_defaults default :basedir, '/tmp' default :basefile, File.join(self.basedir, 'config.yml') end |
#setup ⇒ Object
30 31 32 |
# File 'lib/config_struct.rb', line 30 def setup write Hash.new end |
#write(values) ⇒ Object
38 39 40 41 42 |
# File 'lib/config_struct.rb', line 38 def write(values) File.open(self.basefile, 'w') do |f| f.write YAML.dump(values) end end |