Sha256: ecb0a45168ee29fc3a43a649c1d7f0e04dc7737964f99156931e06e855285fcd
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module Dayman class Request module Sorting SORT_ORDER_WHITELIST = [:asc, :desc].freeze # http://jsonapi.org/format/#fetching-sorting def sort(*args) Array(args).each do |sort_field| if sort_field.is_a?(Hash) sort_field, order = sort_field.first unless order.in?(SORT_ORDER_WHITELIST) raise ArgumentError, 'sort order must be :asc or :desc (defaults to :asc)' end else order = SORT_ORDER_WHITELIST.first end sort_fields.push(sort_field => order) end self end alias order sort private def sort_fields_to_query_parameters sort_fields = @sort_fields.uniq.compact.map do |sort_field| field, order = sort_field.first "#{'-' if order == :desc}#{field}" end if sort_fields.blank? {} else { sort: sort_fields.join(',') } end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dayman-0.1.2 | lib/dayman/request/sorting.rb |
dayman-0.1.1 | lib/dayman/request/sorting.rb |