Sha256: 623f7a84ffd5fb2fdeb3ab72fc3544d13920084427aab804b6695c6f63627b05

Contents?: true

Size: 599 Bytes

Versions: 46

Compression:

Stored size: 599 Bytes

Contents

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

Version data entries

46 entries across 46 versions & 4 rubygems

Version Path
ransack-3.2.1 lib/ransack/ransacker.rb
ransack-3.2.0 lib/ransack/ransacker.rb
ransack-3.1.0 lib/ransack/ransacker.rb
ransack-3.0.1 lib/ransack/ransacker.rb
ransack-3.0.0 lib/ransack/ransacker.rb
ransack-2.6.0 lib/ransack/ransacker.rb
ransack-2.5.0 lib/ransack/ransacker.rb
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/ransack-2.4.2/lib/ransack/ransacker.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/ransack-2.4.2/lib/ransack/ransacker.rb
ransack-2.4.2 lib/ransack/ransacker.rb
ransack-2.4.1 lib/ransack/ransacker.rb
ransack-2.4.0 lib/ransack/ransacker.rb
ransack-2.3.2 lib/ransack/ransacker.rb
ransack-2.3.1 lib/ransack/ransacker.rb
ransack-2.3.0 lib/ransack/ransacker.rb
ransack-1.8.10 lib/ransack/ransacker.rb
ransack-2.1.1 lib/ransack/ransacker.rb
ransack-2.1.0 lib/ransack/ransacker.rb
ransack-2.0.1 lib/ransack/ransacker.rb
ransack-2.0.0 lib/ransack/ransacker.rb