Class: LazyAnt::Config
- Inherits:
-
Object
- Object
- LazyAnt::Config
- Defined in:
- lib/lazy_ant/config.rb
Class Method Summary collapse
- .accessor_methods(name) ⇒ Object
- .define_reader(reader, var, options = {}) ⇒ Object
- .define_writer(writer, var, options = {}) ⇒ Object
- .key(name, options = {}) ⇒ Object
- .keys ⇒ Object
Instance Method Summary collapse
- #deprecated(method, instead) ⇒ Object
-
#initialize ⇒ Config
constructor
A new instance of Config.
- #validate(val) ⇒ Object
Constructor Details
#initialize ⇒ Config
3 4 5 6 7 |
# File 'lib/lazy_ant/config.rb', line 3 def initialize self.class.keys.each do |var, | instance_variable_set(var, [:default]) end end |
Class Method Details
.accessor_methods(name) ⇒ Object
51 52 53 54 55 |
# File 'lib/lazy_ant/config.rb', line 51 def accessor_methods(name) attr = name.to_s.gsub(/[!\?]$/, '') var = "@#{attr}".to_sym ["#{attr}=".to_sym, name.to_sym, var, name[-1] == '?'] end |
.define_reader(reader, var, options = {}) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/lazy_ant/config.rb', line 40 def define_reader(reader, var, = {}) define_method reader do deprecated reader, [:deprecated] if [:deprecated] instance_variable_get(var) end end |
.define_writer(writer, var, options = {}) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/lazy_ant/config.rb', line 32 def define_writer(writer, var, = {}) define_method writer do |val| deprecated writer, [:deprecated] if [:deprecated] validate(val) if [:question] instance_variable_set(var, val) end end |
.key(name, options = {}) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/lazy_ant/config.rb', line 23 def key(name, = {}) writer, reader, var, question = accessor_methods(name) [:question] = question keys[var] = define_writer(writer, var, ) define_reader(reader, var, ) end |
.keys ⇒ Object
47 48 49 |
# File 'lib/lazy_ant/config.rb', line 47 def keys @keys ||= {} end |
Instance Method Details
#deprecated(method, instead) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/lazy_ant/config.rb', line 9 def deprecated(method, instead) msg = "config.#{method} is deprecated" if instead.is_a?(Symbol) writer, = self.class.accessor_methods(instead) msg += ", use config.#{writer}" end warn msg end |
#validate(val) ⇒ Object
18 19 20 |
# File 'lib/lazy_ant/config.rb', line 18 def validate(val) fail ArgumentError unless val == true || val == false end |