Module: Clafamatt::Macros::ClassMethods
- Defined in:
- lib/clafamatt.rb
Instance Method Summary collapse
- #class_family_accessor(*symbols) ⇒ Object
- #class_family_reader(*symbols) ⇒ Object
- #class_family_writer(*symbols) ⇒ Object
Instance Method Details
#class_family_accessor(*symbols) ⇒ Object
126 127 128 129 |
# File 'lib/clafamatt.rb', line 126 def class_family_accessor(*symbols) class_family_reader(*symbols) class_family_writer(*symbols) end |
#class_family_reader(*symbols) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/clafamatt.rb', line 101 def class_family_reader(*symbols) symbols.each do |name| ivar = '@' + name.to_s define_macro(name) do || # Explicitly checking for variable definition avoids warnings. if instance_variable_defined?(ivar) instance_variable_get(ivar) # super() doesn't work the way we need in singleton class world elsif can_pass?(name) pass(name) else nil end end end end |
#class_family_writer(*symbols) ⇒ Object
117 118 119 120 121 122 123 124 125 |
# File 'lib/clafamatt.rb', line 117 def class_family_writer(*symbols) symbols.each do |name| setter = name.to_s + '=' ivar = '@' + name.to_s define_macro(setter) do |new_value| instance_variable_set(ivar, new_value) end end end |