module Thorderbolt

Active Record customer ordering

Constants

ParamsParsingError
ThorderboltError
VERSION

Public Instance Methods

order_as(hash) click to toggle source
# File lib/thorderbolt.rb, line 13
def order_as(hash)
  order_with_builder(hash, OrderQueryBuilder)
end
order_as_any(hash) click to toggle source
# File lib/thorderbolt.rb, line 17
def order_as_any(hash)
  order_with_builder(hash, OrderAnyQueryBuilder)
end

Protected Instance Methods

order_with_builder(hash, builder) click to toggle source
# File lib/thorderbolt.rb, line 23
def order_with_builder(hash, builder)
  params = ParamsExtractor.call(hash, table_name)
  values = params[:values]

  return all if params[:values].empty?
  raise ThorderboltError, 'Cannot order by `nil`' if values.any?(&:nil?)

  builder = builder.new(params)
  order(Arel.sql(builder.build))
end