class QueryDelegator

Constants

VERSION

Public Class Methods

[](delegating) click to toggle source

Returns a Proc which delegates an ActiveRecord model scope to query object instance method.

# File lib/query_delegator.rb, line 29
def [](delegating)
  delegator = self

  if public_instance_method(delegating).arity.zero?
    proc do
      delegator.new(self).public_send delegating
    end
  else
    proc do |*options|
      delegator.new(self).public_send delegating, *options
    end
  end
end
call(relation)
Alias for: new
new(relation) click to toggle source
# File lib/query_delegator.rb, line 10
def initialize(relation)
  @current_scope = relation.all
end
Also aliased as: call
to_proc() click to toggle source

Returns a Proc which wraps an ActiveRecord scope in a new query object instance.

# File lib/query_delegator.rb, line 16
def to_proc
  delegator = self

  proc do |*args|
    if equal? delegator
      new(*args)
    else
      delegator.(self, *args)
    end
  end
end