module Fetcha::SortParams

Public Class Methods

convert_to_ordered_hash(fields) click to toggle source
# File lib/fetcha.rb, line 180
def self.convert_to_ordered_hash(fields)
  fields.each_with_object({}) do |field, hash|
    if field.start_with?('-')
      field = field[1..-1]
      hash[field] = :desc
    else
      hash[field] = :asc
    end
  end
end
sorted_fields(sort, allowed_set) click to toggle source
# File lib/fetcha.rb, line 171
def self.sorted_fields(sort, allowed_set)
  fields = sort.to_s.split(',')

  ordered_fields = convert_to_ordered_hash(fields)
  filtered_fields = ordered_fields.select { |k| allowed_set.include? k }

  filtered_fields.present? ? filtered_fields : nil
end