1
0
Fork 0
mirror of https://github.com/activerecord-hackery/ransack.git synced 2022-11-09 13:47:45 -05:00
activerecord-hackery--ransack/lib/ransack/ransacker.rb
Jon Atack 1abf8f6086 Maintain Ruby 1.8.7 syntax compatibility
since Rails 3.x stills supports Ruby 1.8.7 as per
http://guides.rubyonrails.org/v3.2.17/getting_started.html:
“Ruby language version 1.8.7 or higher.”
2014-05-01 15:55:39 +02:00

24 lines
599 B
Ruby

module Ransack
class Ransacker
attr_reader :name, :type, :formatter, :args
delegate :call, :to => :@callable
def initialize(klass, name, opts = {}, &block)
@klass, @name = klass, name
@type = opts[:type] || :string
@args = opts[:args] || [:parent]
@formatter = opts[:formatter]
@callable = opts[:callable] || block ||
(@klass.method(name) if @klass.respond_to?(name)) ||
proc { |parent| parent.table[name] }
end
def attr_from(bindable)
call(*args.map { |arg| bindable.send(arg) })
end
end
end