Class: SolidRuby::Parameters::Parameters
- Inherits:
-
Object
- Object
- SolidRuby::Parameters::Parameters
show all
- Defined in:
- lib/solidruby/parameters.rb
Constant Summary
collapse
- @@verbose =
true
Class Method Summary
collapse
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/solidruby/parameters.rb', line 70
def method_missing(method, *args)
name = method.to_s
raise "UnknownParameter #{method}" unless name.end_with?("=")
name = name.chomp("=").to_sym
if @@values.keys.include?(name) && @@values[name] != args.first
raise "ConflictingParameter #{method}"
elsif @@values.keys.include?(name)
warn "Duplicate definition of #{name} = #{args} @ #{caller[0]}"
else
warn "Adding parameter #{name} = #{args}, it is recommended you place this in a parameters.yml file"
end
return if singleton_class.method_defined?(name)
add_parameter(name, args.first)
end
|
Class Method Details
.add_overrides(values = {}) ⇒ Object
58
59
60
61
62
|
# File 'lib/solidruby/parameters.rb', line 58
def add_overrides(values={})
@@overrides ||= {}
@@overrides.merge!(values)
clear_params
end
|
.clear_overrides ⇒ Object
64
65
66
67
|
# File 'lib/solidruby/parameters.rb', line 64
def clear_overrides
@@overrides = {}
clear_params
end
|
.load_yml ⇒ Object
48
49
50
51
52
53
54
55
56
|
# File 'lib/solidruby/parameters.rb', line 48
def load_yml
@@yml_path ||= "parameters.yml"
if File.file?(@@yml_path)
YAML.load_file(@@yml_path, aliases: true)
else
raise "Could not read paramters yml file at #{@@yml_path}"
end
end
|
.variant ⇒ Object
36
37
38
|
# File 'lib/solidruby/parameters.rb', line 36
def variant
@@variant
end
|
.variant=(name) ⇒ Object
40
41
42
|
# File 'lib/solidruby/parameters.rb', line 40
def variant=(name)
@@variant = name.to_s
end
|
.verbose=(val) ⇒ Object
44
45
46
|
# File 'lib/solidruby/parameters.rb', line 44
def verbose=(val)
@@verbose = !!val
end
|
.yml_path ⇒ Object
22
23
24
|
# File 'lib/solidruby/parameters.rb', line 22
def yml_path
@@yml_path
end
|
.yml_path=(path) ⇒ Object
26
27
28
29
30
31
32
33
34
|
# File 'lib/solidruby/parameters.rb', line 26
def yml_path=(path)
if File.directory?(path)
path = File.join(path, "parameters.yml")
end
@@yml_path = path
clear_params
end
|
Instance Method Details
#to_s ⇒ Object
Also known as:
inspect
89
90
91
|
# File 'lib/solidruby/parameters.rb', line 89
def to_s
"#{super} #{@@variant} #{@@values}"
end
|