class Ransack::Nodes::Sort

Attributes

dir[R]
name[R]

Public Class Methods

extract(context, str) click to toggle source
# File lib/ransack/nodes/sort.rb, line 10
def extract(context, str)
  return unless str
  attr, direction = str.split(/\s+/,2)
  self.new(context).build(name: attr, dir: direction)
end

Public Instance Methods

build(params) click to toggle source
# File lib/ransack/nodes/sort.rb, line 17
def build(params)
  params.with_indifferent_access.each do |key, value|
    if key.match(/^(name|dir)$/)
      self.send("#{key}=", value)
    end
  end

  self
end
dir=(dir) click to toggle source
# File lib/ransack/nodes/sort.rb, line 38
def dir=(dir)
  dir = dir.downcase if dir
  @dir =
    if Constants::ASC_DESC.include?(dir)
      dir
    else
      Constants::ASC
    end
end
name=(name) click to toggle source
# File lib/ransack/nodes/sort.rb, line 33
def name=(name)
  @name = name
  context.bind(self, name) unless name.blank?
end
valid?() click to toggle source
# File lib/ransack/nodes/sort.rb, line 27
def valid?
  bound? && attr &&
  context.klassify(parent).ransortable_attributes(context.auth_object)
  .include?(attr_name)
end