class Peaty::Proxy

Attributes

connection[RW]
options[RW]
target[RW]

Public Class Methods

build(attrs = {}) click to toggle source
# File lib/peaty/proxy.rb, line 28
def self.build(attrs = {})
  @target.build(@options.merge(attrs.with_indifferent_access))
end
new(target, connection, options = {}) click to toggle source
# File lib/peaty/proxy.rb, line 6
def initialize(target, connection, options = {})
  @target, @connection, @options = target, connection, options.with_indifferent_access
end

Public Instance Methods

filter(*args) click to toggle source
# File lib/peaty/proxy.rb, line 17
def filter(*args)
  options = args.extract_options!
  options.each do |(key, value)|
    @options[key] = Array.wrap(@options.delete(:key)).concat(Array.wrap(value))
  end
  
  @options[:rest] = Array.wrap(@options.delete(:rest)).concat(args)
  
  self
end
method_missing(method, *args) click to toggle source
# File lib/peaty/proxy.rb, line 10
def method_missing(method, *args)
  return @target.method(method).unbind.bind(self).call(*args) if @target.class.respond_to?(method)
  options = args.extract_options!
  args << @options.merge(options)
  @target.with_connection(@connection).send(method, *args)
end