class SortDescriptorLiteral::SortDescriptor

Attributes

ascending[R]
key[R]
selector[R]

Public Class Methods

new(key, selector, ascending) click to toggle source
# File lib/PredicateLiteralKit4Ruby.rb, line 56
def initialize(key, selector, ascending)
  @key = key
  @selector = selector
  @ascending = ascending
end
parse(array) click to toggle source
# File lib/PredicateLiteralKit4Ruby.rb, line 52
def self.parse(array)
  self.new(array[0], array[1], array[2])
end

Public Instance Methods

build_arel(arel_table) click to toggle source
# File lib/PredicateLiteralKit4Ruby.rb, line 70
def build_arel(arel_table)
  key = underscore(@key) unless (key = LITERAL_KEY_MAPPING[@key])
  key = key.to_sym
  puts "KEY: #{key}"
  return arel_table[key].asc if @ascending
  return arel_table[key].desc
end
underscore(camel_cased_word) click to toggle source
# File lib/PredicateLiteralKit4Ruby.rb, line 62
def underscore(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '/').
      gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
      gsub(/([a-z\d])([A-Z])/, '\1_\2').
      tr("-", "_").
      downcase
end