Module: Traits::Utilities
- Included in:
- Traits
- Defined in:
- lib/traits/utilities.rb
Instance Method Summary collapse
- #active_record_collection?(obj) ⇒ Boolean
- #active_record_descendant?(obj) ⇒ Boolean
- #active_record_instance?(obj) ⇒ Boolean
- #retrieve_active_record(obj) ⇒ Object
- #retrieve_active_record!(obj) ⇒ Object
Instance Method Details
#active_record_collection?(obj) ⇒ Boolean
41 42 43 |
# File 'lib/traits/utilities.rb', line 41 def active_record_collection?(obj) obj.kind_of?(ActiveRecord::Relation) end |
#active_record_descendant?(obj) ⇒ Boolean
37 38 39 |
# File 'lib/traits/utilities.rb', line 37 def active_record_descendant?(obj) obj.kind_of?(Class) && obj < ActiveRecord::Base end |
#active_record_instance?(obj) ⇒ Boolean
45 46 47 |
# File 'lib/traits/utilities.rb', line 45 def active_record_instance?(obj) obj.kind_of?(ActiveRecord::Base) end |
#retrieve_active_record(obj) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/traits/utilities.rb', line 6 def retrieve_active_record(obj) if active_record_descendant?(obj) obj elsif active_record_instance?(obj) obj.class elsif active_record_collection?(obj) obj.model else case obj when String, Symbol s = obj.kind_of?(Symbol) ? obj.to_s : obj s.camelize.safe_constantize || s.tr('_', '/').camelize.safe_constantize when Traits::Model, Traits::Attribute obj.active_record when Traits::Association obj.from_active_record end end end |
#retrieve_active_record!(obj) ⇒ Object
31 32 33 34 35 |
# File 'lib/traits/utilities.rb', line 31 def retrieve_active_record!(obj) retrieve_active_record(obj) || begin raise ActiveRecordRetrieveError, "#{obj.inspect} is not a valid ActiveRecord reference" end end |