Module: Skr::Concerns::AttrAccessorWithDefault::ClassMethods
- Defined in:
- lib/skr/concerns/attr_accessor_with_default.rb
Instance Method Summary collapse
-
#attr_accessor_with_default(name, default) ⇒ Object
defines a attr_accessor with a default value.
- #attr_reader_with_default(name, default) ⇒ Object
Instance Method Details
#attr_accessor_with_default(name, default) ⇒ Object
defines a attr_accessor with a default value
31 32 33 34 |
# File 'lib/skr/concerns/attr_accessor_with_default.rb', line 31 def attr_accessor_with_default( name, default ) attr_writer name attr_reader_with_default( name, default ) end |
#attr_reader_with_default(name, default) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/skr/concerns/attr_accessor_with_default.rb', line 36 def attr_reader_with_default( name, default ) module_eval do define_method( name ) do class << self; self; end.class_eval do attr_reader( name ) end if instance_variables.include? "@#{name}" instance_variable_get( "@#{name}" ) else instance_variable_set( "@#{name}", default.is_a?(Proc) ? default.call : default ) end end end end |