Sha256: f61c627131faf3e733ccc8073488c3f688d3f506d0965efafe9b405e36534e30
Contents?: true
Size: 820 Bytes
Versions: 1
Compression:
Stored size: 820 Bytes
Contents
module Traits class UnidentifiedModelReference < StandardError end module Utilities def retrieve_model_class(obj) if active_record_descendant?(obj) obj elsif active_record_instance?(obj) obj.class else case obj when Symbol then obj.to_s.camelize.constantize when String then obj.camelize.constantize when Model then obj.model_class else raise UnidentifiedModelReference, obj end end end def active_record_descendant?(obj) obj.kind_of?(Class) && obj < ActiveRecord::Base end def active_record_instance?(obj) obj.kind_of?(ActiveRecord::Base) end def valid_active_record_identifier?(id) id.kind_of?(String) || id.kind_of?(Numeric) end end extend Utilities end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord-traits-1.0.0 | lib/traits/utilities.rb |