class Yaqb::QueryBuilders::Sort
Constants
- DIRECTIONS
Public Class Methods
new(scope, params, presenter)
click to toggle source
# File lib/yaqb/query_builders/sort.rb, line 8 def initialize(scope, params, presenter) @scope = scope @presenter = presenter @column = params[:sort] @direction = params[:dir] end
Public Instance Methods
sort()
click to toggle source
# File lib/yaqb/query_builders/sort.rb, line 15 def sort return @scope unless @column && @direction validate!('sort', @column) unless @presenter.sort_attributes.include?(@column) validate!('dir', @direction) unless DIRECTIONS.include?(@direction) @scope.order(Arel.sql("#{@column} #{@direction}")) end
Private Instance Methods
validate!(name, value)
click to toggle source
# File lib/yaqb/query_builders/sort.rb, line 26 def validate!(name, value) columns = @presenter.sort_attributes.join(', ') raise Errors::QueryBuilderError.new("#{name}=#{value}"), "Invalid sorting params. sort: (#{columns}), 'dir': asc, desc" end