Sha256: 6995eb9c130f6219fb947160bef140f3b792984d48d1e2b3b8434884be284d4f
Contents?: true
Size: 835 Bytes
Versions: 1
Compression:
Stored size: 835 Bytes
Contents
module Ransack module Nodes class Sort < Node include Bindable attr_reader :name, :dir i18n_word :asc, :desc class << self def extract(context, str) attr, direction = str.split(/\s+/,2) self.new(context).build(:name => attr, :dir => direction) end end 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 valid? bound? && attr end def name=(name) @name = name context.bind(self, name) unless name.blank? end def dir=(dir) dir = dir.try(:downcase) @dir = %w(asc desc).include?(dir) ? dir : 'asc' end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ransack-1.1.0 | lib/ransack/nodes/sort.rb |