Sha256: 75c011502c1af24db3edf514e845e0a694270281fcd4f6e9f5efa2ca37ee1884
Contents?: true
Size: 739 Bytes
Versions: 56
Compression:
Stored size: 739 Bytes
Contents
module Spree module Orders class Sort attr_reader :scope, :sort def initialize(scope, params) @scope = scope @sort = params[:sort] end def call orders = completed_at(scope) orders end private def desc_order @desc_order ||= String(sort)[0] == '-' end def sort_field @sort_field ||= desc_order ? sort[1..-1] : sort end def order_direction desc_order ? :asc : :desc end def completed_at? sort_field.eql?('completed_at') end def completed_at(orders) return orders unless completed_at? orders.order(completed_at: order_direction) end end end end
Version data entries
56 entries across 56 versions & 1 rubygems