class Right::SortMiddleware

Sort scope using ransack gem

Attributes

app[R]

Public Class Methods

new(app) click to toggle source

@param app [#call]

# File lib/right/sort_middleware.rb, line 8
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source

@param [Array(ActiveRecord::Relation, Hash)] env First argument is a ActiveRecord relation which must be sorted Second argument is a request parameters provided by user

# File lib/right/sort_middleware.rb, line 18
def call(env)
  scope, = ::Middleware::Builder.new do |b|
    b.use RansackableSortParametersAdapter
    b.use RansackableSort
  end.call(env)

  app.call([scope, env[1]])
end