Sha256: a2c7c9d32f6a0cc7e5a018046bd639f8be5aec7ff8bb74c4b8eab6dd0d70905f

Contents?: true

Size: 465 Bytes

Versions: 2

Compression:

Stored size: 465 Bytes

Contents

# Define order by filter rule
#
module QueryFilter::Rules
  class OrderBy < Scope
    DIRECTIONS = %w[asc desc].freeze

    def name
      'order_by'.freeze
    end

    def valid?(params)
      params[key].present? && DIRECTIONS.include?(params[direction_key])
    end

    def direction_key
      @direction_key ||= (@options[:via] || 'sort_direction').to_sym
    end

    def normalize_params(values)
      [values[key], values[direction_key]]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
query_filter-0.1.1 lib/query_filter/rules/order_by.rb
query_filter-0.1.0 lib/query_filter/rules/order_by.rb