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
- #at_attribute(name, *args) ⇒ Object
- #generated_virtual_attribute_methods ⇒ Object
Instance Method Details
#_has_virtual_column?(name) ⇒ Boolean
349 350 351 352 353 354 355 356 357 |
# File 'lib/active_type/virtual_attributes.rb', line 349 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
329 330 331 332 333 334 335 336 337 |
# File 'lib/active_type/virtual_attributes.rb', line 329 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
339 340 341 342 343 344 345 346 347 |
# File 'lib/active_type/virtual_attributes.rb', line 339 def _virtual_column_names @virtual_column_names ||= begin names = virtual_columns_hash.keys if defined?(super) names += super end names end end |
#at_attribute(name, *args) ⇒ Object
367 368 369 370 371 372 |
# File 'lib/active_type/virtual_attributes.rb', line 367 def at_attribute(name, *args) = args. type = args.first Builder.new(self, generated_virtual_attribute_methods).build(name, type, ) end |
#generated_virtual_attribute_methods ⇒ Object
359 360 361 362 363 364 365 |
# File 'lib/active_type/virtual_attributes.rb', line 359 def generated_virtual_attribute_methods @generated_virtual_attribute_methods ||= begin mod = Module.new include mod mod end end |