class Ransack::Nodes::Sort
def build(params)
def build(params) params.with_indifferent_access.each do |key, value| if key.match(/^(name|dir)$/) self.send("#{key}=", value) end end self end
def dir=(dir)
def dir=(dir) @dir = %w(asc desc).include?(dir) ? dir : 'asc' end
def extract(context, str)
def extract(context, str) attr, direction = str.split(/\s+/,2) self.new(context).build(:name => attr, :dir => direction) end
def name=(name)
def name=(name) @name = name context.bind(self, name) unless name.blank? end
def valid?
def valid? bound? && attr end