Class: ConfigStruct

Inherits:
OpenStruct
  • Object
show all
Defined in:
lib/config_struct.rb

Instance Method Summary collapse

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(options = nil, input = STDIN, output = STDOUT)
  super(options)
  set_defaults
  prepare_dirs
  addvalues
end

Instance Method Details

#addvaluesObject



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_dirsObject



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_defaultsObject



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

#setupObject



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