module Traits::Utilities
Public Instance Methods
active_record_collection?(obj)
click to toggle source
# File lib/traits/utilities.rb, line 42 def active_record_collection?(obj) obj.kind_of?(ActiveRecord::Relation) end
active_record_descendant?(obj)
click to toggle source
# File lib/traits/utilities.rb, line 38 def active_record_descendant?(obj) obj.kind_of?(Class) && obj < ActiveRecord::Base end
active_record_instance?(obj)
click to toggle source
# File lib/traits/utilities.rb, line 46 def active_record_instance?(obj) obj.kind_of?(ActiveRecord::Base) end
retrieve_active_record(obj)
click to toggle source
# 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 str = (obj.kind_of?(Symbol) ? obj.to_s : obj).underscore.singularize kls = str.camelize.safe_constantize || str.tr('_', '/').camelize.safe_constantize kls if active_record_descendant?(kls) when Traits::Model, Traits::Attribute obj.active_record when Traits::Association obj.from_active_record end end end
retrieve_active_record!(obj)
click to toggle source
# File lib/traits/utilities.rb, line 32 def retrieve_active_record!(obj) retrieve_active_record(obj) || begin raise ActiveRecordRetrieveError, "#{obj.inspect} is not a valid ActiveRecord reference" end end