class RailsOptimizer::BelongsTo

Public Class Methods

_define(owner, name ) click to toggle source
# File lib/rails_optimizer/belongs_to.rb, line 4
def self._define(owner, name )
        owner.__send__(:define_method, name) do |*args|
                return RailsOptimizer::BelongsTo.new(self, name, *args).get_target
        end
end

Public Instance Methods

get_target() click to toggle source
Calls superclass method RailsOptimizer::Association#get_target
# File lib/rails_optimizer/belongs_to.rb, line 10
def get_target
        super do
                if args.empty?
                        klass
                else
                        klass.select(*args)
                end
                        .execute(&reflection_scope)
                        .execute(&finded)
        end
end

Private Instance Methods

finded() click to toggle source
# File lib/rails_optimizer/belongs_to.rb, line 24
def finded
        id = owner.read_attribute(foreign_key)
        proc { send(:find_by, {id: id}) }
end
foreign_key() click to toggle source
# File lib/rails_optimizer/belongs_to.rb, line 29
def foreign_key
        reflection.foreign_key.to_sym
end