Sha256: f8a215213ff957c997a0a17932dc0c679aabfc00ee40499ca1517a5812492321

Contents?: true

Size: 502 Bytes

Versions: 5

Compression:

Stored size: 502 Bytes

Contents

# frozen_string_literal: true
module Might
  # Converts array of parameters to hash familiar to ransack gem
  #
  class RansackableSortParametersAdapter
    def initialize(app)
      @app = app
    end

    def call(env)
      scope, params = env

      ransackable_parameters = Array(params[:sort]).map do |parameter|
        "#{parameter.name} #{parameter.direction}"
      end

      app.call([scope, params.merge(sort: ransackable_parameters)])
    end

    private

    attr_reader :app
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
might-0.7.6 lib/might/ransackable_sort_parameters_adapter.rb
might-0.7.5 lib/might/ransackable_sort_parameters_adapter.rb
might-0.7.4 lib/might/ransackable_sort_parameters_adapter.rb
might-0.7.3 lib/might/ransackable_sort_parameters_adapter.rb
might-0.7.2 lib/might/ransackable_sort_parameters_adapter.rb