module Customize::Characterize
Public Class Methods
included(base)
click to toggle source
# File lib/customize/characterize.rb, line 4 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
Public Instance Methods
character()
click to toggle source
# File lib/customize/characterize.rb, line 13 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
inherited_characters()
click to toggle source
# File lib/customize/characterize.rb, line 25 def inherited_characters if self.class.include?(Customize::Inherited) Character.where(:related_id=>ascent_ids, :related_type=>self.class.name) end end