Sha256: 8c01ddaf2be48cfb0809ef5ab1f70ffe13f3699736e7ec5a44f0f904862cb965
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
module Traits class Model < Base end end require 'traits/concerns/model/naming' require 'traits/concerns/model/polymorphism' require 'traits/concerns/model/sti' require 'traits/concerns/model/querying' require 'traits/concerns/model/essay_shortcuts' module Traits class Model include Naming include STI include Polymorphism include Querying include EssayShortcuts attr_reader :model_class alias active_record model_class alias klass model_class def initialize(model_class) @model_class = model_class end def attributes @attributes ||= inspect_attributes end def associations @associations ||= inspect_associations end def to_s class_name end def to_hash super.merge!( attributes: attributes.to_hash, associations: associations.to_hash ) end protected # TODO Store, Storage, Virtual attributes def inspect_attributes columns = model_class.columns_hash.values if features.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(model_class, column) end Traits::List.new(list) end def inspect_associations list = model_class.reflections.map do |pair| Traits::Association.new(model_class, pair.last) end Traits::List.new(list) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord-traits-1.0.0 | lib/traits/model.rb |