class Ransack::Nodes::Sort
Attributes
dir[R]
name[R]
ransacker_args[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|ransacker_args)$/) 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 dir == 'asc'.freeze || dir == 'desc'.freeze dir else 'asc'.freeze end end
name=(name)
click to toggle source
# File lib/ransack/nodes/sort.rb, line 33 def name=(name) @name = context.ransackable_alias(name) || name context.bind(self, @name) end
ransacker_args=(ransack_args)
click to toggle source
# File lib/ransack/nodes/sort.rb, line 48 def ransacker_args=(ransack_args) @ransacker_args = ransack_args 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