Module: ActiveType::VirtualAttributes::ClassMethods
- Defined in:
- lib/active_type/virtual_attributes.rb
Instance Method Summary collapse
- #_has_virtual_column?(name) ⇒ Boolean
- #_virtual_column(name) ⇒ Object
- #_virtual_column_names ⇒ Object
- #attribute(name, type = nil) ⇒ Object
- #generated_virtual_attribute_methods ⇒ Object
Instance Method Details
#_has_virtual_column?(name) ⇒ Boolean
161 162 163 164 165 166 167 168 169 |
# File 'lib/active_type/virtual_attributes.rb', line 161 def _has_virtual_column?(name) virtual_columns_hash.has_key?(name.to_s) || begin if defined?(super) super else false end end end |
#_virtual_column(name) ⇒ Object
141 142 143 144 145 146 147 148 149 |
# File 'lib/active_type/virtual_attributes.rb', line 141 def _virtual_column(name) virtual_columns_hash[name.to_s] || begin if defined?(super) super else raise MissingAttributeError.new("Undefined attribute '#{name}'") end end end |
#_virtual_column_names ⇒ Object
151 152 153 154 155 156 157 158 159 |
# File 'lib/active_type/virtual_attributes.rb', line 151 def _virtual_column_names @virtual_column_names ||= begin names = virtual_columns_hash.keys if defined?(super) names += super end names end end |
#attribute(name, type = nil) ⇒ Object
179 180 181 182 |
# File 'lib/active_type/virtual_attributes.rb', line 179 def attribute(name, type = nil) self.virtual_columns_hash = virtual_columns_hash.merge(name.to_s => VirtualColumn.new(name, type)) AccessorGenerator.new(generated_virtual_attribute_methods).generate_accessors(name) end |
#generated_virtual_attribute_methods ⇒ Object
171 172 173 174 175 176 177 |
# File 'lib/active_type/virtual_attributes.rb', line 171 def generated_virtual_attribute_methods @generated_virtual_attribute_methods ||= begin mod = Module.new include mod mod end end |