class Getto::Params::Search::Sort

Public Class Methods

new(sort:) click to toggle source
# File lib/getto/params/search.rb, line 51
def initialize(sort:)
  @sort = [sort.split(".")].to_h
end

Public Instance Methods

to_h(sort:) click to toggle source
# File lib/getto/params/search.rb, line 55
def to_h(sort:)
  spec = {}
  if sort
    sort.call Order.new(spec)
  end

  result = {
    column: nil,
    order: true,
  }

  spec.map{|key,is_straight|
    if sort = @sort[key]
      result[:column] = key.to_sym
      result[:order] =
        if sort == "asc"
          is_straight
        else
          not is_straight
        end
    end
  }

  result
end