Module: ActiveRecord::Delegation::ClassSpecificRelation::ClassMethods

Defined in:
activerecord/lib/active_record/relation/delegation.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#delegate(method, opts = {}) ⇒ Object


75
76
77
78
79
80
# File 'activerecord/lib/active_record/relation/delegation.rb', line 75

def delegate(method, opts = {})
  @delegation_mutex.synchronize do
    return if method_defined?(method)
    super
  end
end

#delegate_to_scoped_klass(method) ⇒ Object


57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'activerecord/lib/active_record/relation/delegation.rb', line 57

def delegate_to_scoped_klass(method)
  @delegation_mutex.synchronize do
    return if method_defined?(method)

    if method.to_s =~ /\A[a-zA-Z_]\w*[!?]?\z/
      module_eval "def \#{method}(*args, &block)\nscoping { @klass.\#{method}(*args, &block) }\nend\n", __FILE__, __LINE__ + 1
    else
      define_method method do |*args, &block|
        scoping { @klass.public_send(method, *args, &block) }
      end
    end
  end
end

#nameObject


53
54
55
# File 'activerecord/lib/active_record/relation/delegation.rb', line 53

def name
  superclass.name
end