Class: Babushka::Vars
- Inherits:
-
Object
show all
- Includes:
- LogHelpers
- Defined in:
- lib/babushka/vars.rb
Defined Under Namespace
Modules: Helpers
Instance Attribute Summary (collapse)
Instance Method Summary
(collapse)
Methods included from LogHelpers
#debug, #log, #log_block, #log_error, #log_ok, #log_verbose, #log_warn
Constructor Details
- (Vars) initialize
14
15
16
17
|
# File 'lib/babushka/vars.rb', line 14
def initialize
@vars = Hashish.hash
@saved_vars = Hashish.hash
end
|
Instance Attribute Details
- (Object) saved_vars
Returns the value of attribute saved_vars
5
6
7
|
# File 'lib/babushka/vars.rb', line 5
def saved_vars
@saved_vars
end
|
Returns the value of attribute vars
5
6
7
|
# File 'lib/babushka/vars.rb', line 5
def vars
@vars
end
|
Instance Method Details
- (Object) default_for(key)
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/babushka/vars.rb', line 58
def default_for key
if vars[key.to_s][:default].respond_to? :call
instance_eval { vars[key.to_s][:default].call }
elsif saved_vars[key.to_s].has_key? :value
saved_vars[key.to_s][:value]
elsif vars[key.to_s][:default].is_a? Symbol
referenced_val = var vars[key.to_s][:default], :ask => false
(saved_vars[key.to_s][:values] ||= {})[referenced_val] || referenced_val
else
vars[key.to_s][:default]
end
end
|
- (Object) define_var(name, opts = {})
41
42
43
44
45
|
# File 'lib/babushka/vars.rb', line 41
def define_var name, opts = {}
vars[name.to_s].update opts.slice(:default, :type, :message, :choices, :choice_descriptions)
vars[name.to_s][:choices] ||= vars[name.to_s][:choice_descriptions].keys unless vars[name.to_s][:choice_descriptions].nil?
vars[name.to_s]
end
|
- (Object) for_save
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/babushka/vars.rb', line 47
def for_save
vars.dup.inject(saved_vars.dup) {|vars_to_save,(var,_)|
vars_to_save[var].update vars[var]
save_referenced_default_for(var, vars_to_save) if vars[var][:default].is_a?(Symbol)
vars_to_save
}.reject_r {|var,data|
![String, Symbol, Hash, Numeric, TrueClass, FalseClass].include?(data.class) ||
var.to_s['password']
}
end
|
- (Object) merge(key, value)
22
23
24
|
# File 'lib/babushka/vars.rb', line 22
def merge key, value
set key, ((vars[key.to_s] || {})[:value] || {}).merge(value)
end
|
- (Object) set(key, value)
19
20
21
|
# File 'lib/babushka/vars.rb', line 19
def set key, value
vars[key.to_s][:value] = value
end
|
- (Object) var(name, opts = {})
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/babushka/vars.rb', line 26
def var name, opts = {}
define_var name, opts
if vars[name.to_s].has_key? :value
if vars[name.to_s][:value].respond_to? :call
vars[name.to_s][:value].call
else
vars[name.to_s][:value]
end
elsif opts[:ask] != false
ask_for_var name.to_s, opts
else
default_for name
end
end
|