class TalentScout::OrderDefinition
@!visibility private
Constants
- DEFAULT_ASC_SUFFIX
- DEFAULT_DESC_SUFFIX
Attributes
asc_choice[R]
asc_value[R]
desc_choice[R]
desc_value[R]
name[R]
Public Class Methods
desc(columns)
click to toggle source
# File lib/talent_scout/order_definition.rb, line 30 def self.desc(columns) columns.map do |column| column.match?(/ (?:ASC|DESC)$/i) ? column : "#{column} DESC" end end
new(name, columns, asc_suffix: DEFAULT_ASC_SUFFIX, desc_suffix: DEFAULT_DESC_SUFFIX)
click to toggle source
# File lib/talent_scout/order_definition.rb, line 10 def initialize(name, columns, asc_suffix: DEFAULT_ASC_SUFFIX, desc_suffix: DEFAULT_DESC_SUFFIX) columns = Array(columns || name) @name = name.to_s @asc_value = Arel.sql(columns.join(", ")) @desc_value = Arel.sql(self.class.desc(columns).join(", ")) @asc_choice = "#{@name}#{asc_suffix}" @desc_choice = @desc_value == @asc_value ? @asc_choice : "#{@name}#{desc_suffix}" end
Public Instance Methods
choice_for_direction(direction)
click to toggle source
# File lib/talent_scout/order_definition.rb, line 19 def choice_for_direction(direction) case direction when :asc, true, /\Aasc\Z/i asc_choice when :desc, /\Adesc\Z/i desc_choice else raise ArgumentError, "Invalid direction #{direction.inspect}" end end