Class: ConfigStruct
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- ConfigStruct
- Defined in:
- lib/configstruct.rb
Instance Method Summary collapse
- #addvalues ⇒ Object
- #default(var, value) ⇒ Object
- #gets(*args) ⇒ Object
-
#initialize(options = nil, input = STDIN, output = STDOUT, unless_set = false) ⇒ ConfigStruct
constructor
A new instance of ConfigStruct.
- #prepare_dirs ⇒ Object
- #print(*string) ⇒ Object
- #printf(string, *args) ⇒ Object
- #puts(*string) ⇒ Object
- #set_defaults ⇒ Object
- #setup ⇒ Object
- #write(values) ⇒ Object
Constructor Details
#initialize(options = nil, input = STDIN, output = STDOUT, unless_set = false) ⇒ ConfigStruct
Returns a new instance of ConfigStruct.
6 7 8 9 10 11 12 13 14 |
# File 'lib/configstruct.rb', line 6 def initialize( = nil, input = STDIN, output = STDOUT, unless_set = false) super() @input = input @output = output @unless_set = unless_set set_defaults prepare_dirs addvalues end |
Instance Method Details
#addvalues ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/configstruct.rb', line 25 def addvalues setup unless File.exist? self.basefile YAML.load_file(self.basefile).each do |k, v| unless @unless_set && defined? self[v] new_ostruct_member(k) send("#{k}=", v) end end end |
#default(var, value) ⇒ Object
39 40 41 |
# File 'lib/configstruct.rb', line 39 def default(var, value) send(var).nil? && send("#{var}=", value) end |
#gets(*args) ⇒ Object
61 62 63 |
# File 'lib/configstruct.rb', line 61 def gets(*args) @input.gets *args end |
#prepare_dirs ⇒ Object
21 22 23 |
# File 'lib/configstruct.rb', line 21 def prepare_dirs FileUtils.mkdir_p self.basedir unless Dir.exist? self.basedir end |
#print(*string) ⇒ Object
53 54 55 |
# File 'lib/configstruct.rb', line 53 def print(*string) @output.print *string end |
#printf(string, *args) ⇒ Object
57 58 59 |
# File 'lib/configstruct.rb', line 57 def printf(string, *args) @output.printf string, *args end |
#puts(*string) ⇒ Object
49 50 51 |
# File 'lib/configstruct.rb', line 49 def puts(*string) @output.puts *string end |
#set_defaults ⇒ Object
16 17 18 19 |
# File 'lib/configstruct.rb', line 16 def set_defaults default :basedir, '/tmp' default :basefile, File.join(self.basedir, 'config.yml') end |
#setup ⇒ Object
35 36 37 |
# File 'lib/configstruct.rb', line 35 def setup write Hash.new end |
#write(values) ⇒ Object
43 44 45 46 47 |
# File 'lib/configstruct.rb', line 43 def write(values) File.open(self.basefile, 'w') do |f| f.write YAML.dump(values) end end |