class Traits::Model
Attributes
active_record[RW]
Public Class Methods
new(active_record)
click to toggle source
# File lib/traits/model.rb, line 27 def initialize(active_record) @active_record = active_record end
Public Instance Methods
associations()
click to toggle source
# File lib/traits/model.rb, line 35 def associations @associations ||= inspect_associations end
attributes()
click to toggle source
# File lib/traits/model.rb, line 31 def attributes @attributes ||= inspect_attributes end
descendants()
click to toggle source
# File lib/traits/model.rb, line 50 def descendants Traits.load_active_record_descendants! active_record.descendants end
to_hash()
click to toggle source
Calls superclass method
Traits::Model::Querying#to_hash
# File lib/traits/model.rb, line 43 def to_hash super.merge!( attributes: attributes.to_hash, associations: associations.to_hash ) end
to_s()
click to toggle source
# File lib/traits/model.rb, line 39 def to_s class_name end
Protected Instance Methods
inspect_associations()
click to toggle source
# File lib/traits/model.rb, line 82 def inspect_associations if active_record.abstract_class? Traits::List.new([]) else list = active_record.reflections.map do |pair| Traits::Association.new(active_record, pair.last) end Traits::List.new(list) end end
inspect_attributes()
click to toggle source
TODO Store, Storage, Virtual attributes
# File lib/traits/model.rb, line 58 def inspect_attributes if active_record.abstract_class? Traits::AttributeList.new([]) else columns = active_record.columns_hash.values if features.try(:translates_with_globalize?) globalize = features.globalize tr_class = globalize.model_class_for_translations tr_columns_hash = tr_class.columns_hash columns += globalize.translated_attribute_names.map do |el| tr_columns_hash[el.to_s] end end list = columns.map do |column| Traits::Attribute.new(active_record, column) end Traits::AttributeList.new(list) end end