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