Module: Traits

Extended by:
Enumerable, DescendantsListing, Utilities
Defined in:
lib/traits/base.rb,
lib/traits/list.rb,
lib/traits/model.rb,
lib/traits/model.rb,
lib/traits/railtie.rb,
lib/traits/version.rb,
lib/traits/attribute.rb,
lib/traits/attribute.rb,
lib/traits/utilities.rb,
lib/traits/model/i18n.rb,
lib/traits/association.rb,
lib/traits/association.rb,
lib/traits/model/naming.rb,
lib/traits/attribute/key.rb,
lib/traits/attribute/type.rb,
lib/traits/model/querying.rb,
lib/traits/association/join.rb,
lib/traits/attribute/naming.rb,
lib/traits/association/macro.rb,
lib/traits/model/inheritance.rb,
lib/traits/association/naming.rb,
lib/traits/attribute/querying.rb,
lib/traits/model/polymorphism.rb,
lib/traits/association/members.rb,
lib/traits/association/through.rb,
lib/traits/descendants_listing.rb,
lib/traits/association/read_only.rb,
lib/traits/attribute/inheritance.rb,
lib/traits/model/essay_shortcuts.rb,
lib/traits/attribute/polymorphism.rb,
lib/traits/association/intermediate.rb,
lib/traits/association/polymorphism.rb,
lib/traits/attribute/essay_shortcuts.rb,
lib/traits/association/essay_shortcuts.rb,
lib/activerecord-traits.rb

Defined Under Namespace

Modules: DescendantsListing, Utilities Classes: ActiveRecordRetrieveError, Association, Attribute, AttributeList, Base, List, Model, Railtie

Constant Summary collapse

VERSION =
'1.1.1'

Class Method Summary collapse

Methods included from Utilities

active_record_collection?, active_record_descendant?, active_record_instance?, retrieve_active_record, retrieve_active_record!

Methods included from DescendantsListing

active_record_descendants, active_record_descendants_loaded?, filter_active_record_descendant, invalidate_loaded_active_record_descendants!, load_active_record_descendants!

Class Method Details

.allObject



40
41
42
43
44
# File 'lib/activerecord-traits.rb', line 40

def all
  each_with_object({}) do |traits, memo|
    memo[traits.name] = traits
  end
end

.eachObject



36
37
38
# File 'lib/activerecord-traits.rb', line 36

def each
  active_record_descendants.each { |ar| yield(ar.traits) }
end

.each_attribute(&block) ⇒ Object



46
47
48
# File 'lib/activerecord-traits.rb', line 46

def each_attribute(&block)
  each { |traits| traits.attributes.each(&block) }
end

.for(obj) ⇒ Object



32
33
34
# File 'lib/activerecord-traits.rb', line 32

def for(obj)
  retrieve_active_record!(obj).traits
end

.to_hashObject



50
51
52
53
54
# File 'lib/activerecord-traits.rb', line 50

def to_hash
  each_with_object({}) do |traits, memo|
    memo[traits.name] = traits.to_hash
  end
end