module Utusemi::Core::ActiveRecord::AssociationMethods

Public Instance Methods

belongs_to(name, *args, &block) click to toggle source
Calls superclass method
# File lib/utusemi/core.rb, line 348
def belongs_to(name, *args, &block)
  prepend_utusemi_association_reader_module(name)
  super
end
has_many(name, *args, &block) click to toggle source
Calls superclass method
# File lib/utusemi/core.rb, line 358
def has_many(name, *args, &block)
  prepend_utusemi_association_reader_module(name)
  super
end
has_one(name, *args, &block) click to toggle source
Calls superclass method
# File lib/utusemi/core.rb, line 353
def has_one(name, *args, &block)
  prepend_utusemi_association_reader_module(name)
  super
end

Private Instance Methods

build_utusemi_association_reader_module(name) click to toggle source
# File lib/utusemi/core.rb, line 370
        def build_utusemi_association_reader_module(name)
          wodule = Module.new
          wodule.class_eval <<-EOS, __FILE__, __LINE__ + 1
            def #{name}(*args, &block)
              association = super
              return unless association
              return association unless association.is_a? ActiveRecord::Base
              utusemi_for_association('#{name}'.to_sym, association)
            end
          EOS
          wodule
        end
prepend_utusemi_association_reader_module(name) click to toggle source
# File lib/utusemi/core.rb, line 365
def prepend_utusemi_association_reader_module(name)
  return if method_defined?(name)
  prepend build_utusemi_association_reader_module(name)
end