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