Sha256: d26ff782f9031043ed704927c1fae0fe341ec5c6b2ba3e3c37f2d4b28d82e9e0
Contents?: true
Size: 806 Bytes
Versions: 5
Compression:
Stored size: 806 Bytes
Contents
module Customize module Characterize def self.included base base.extend ClassMethods base.has_many :characters, :class_name=>Customize::Character.name, :as=>:related base.accepts_nested_attributes_for :characters end module ClassMethods end def character @character ||= proc { ascent_ids = self.class.include?(Customize::Inherited) ? self.ascent_ids : [] all_character = Character.where(:related_id=>(ascent_ids | [self.id]), :related_type=>self.class.name) all_character.inject(HashWithIndifferentAccess.new) { |map, item| map[item.key] = item.value map } }.call end def inherited_characters if self.class.include?(Customize::Inherited) Character.where(:related_id=>ascent_ids, :related_type=>self.class.name) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems