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