class Nexter::Model::ParseOrder

Attributes

order_values[R]

Public Class Methods

new(order_values) click to toggle source
# File lib/nexter/model/parse_order.rb, line 9
def initialize(order_values)
  @order_values = order_values
end
parse(order_values) click to toggle source
# File lib/nexter/model/parse_order.rb, line 5
def self.parse(order_values)
  new(order_values).parse
end

Public Instance Methods

parse() click to toggle source
# File lib/nexter/model/parse_order.rb, line 14
def parse
  order_values.flat_map do |value|
    value.is_a?(String) ? parse_string(value) : parse_arel(value)
  end
end
parse_arel(arel) click to toggle source
# File lib/nexter/model/parse_order.rb, line 29
def parse_arel(arel)
  [["#{arel.value.name}", "#{arel.direction}"]]
end
parse_string(string) click to toggle source

helper to turn mixed order attributes to a consistant array of vals

# File lib/nexter/model/parse_order.rb, line 21
def parse_string(string)
  string.split(",").map(&:strip).map do |column|
    splits = column.split(" ").map(&:strip).map(&:downcase)
    splits << "asc" if splits.size == 1
    splits
  end
end