Class: Presenting::Sorting
- Inherits:
-
Object
- Object
- Presenting::Sorting
- Includes:
- Configurable
- Defined in:
- lib/presenting/sorting.rb
Defined Under Namespace
Instance Method Summary collapse
-
#default ⇒ Object
The default sorting, if no known fields are found in the parameters.
- #default=(val) ⇒ Object
- #fields ⇒ Object
-
#fields=(obj) ⇒ Object
I want to support two configuration formats:.
- #to_sql(param) ⇒ Object
Methods included from Configurable
Instance Method Details
#default ⇒ Object
The default sorting, if no known fields are found in the parameters. Default sorting is specified by name/direction, using an array.
Example:
@sorting.default = [:name, 'asc']
45 46 47 |
# File 'lib/presenting/sorting.rb', line 45 def default @default ||= "#{fields.first.sql} ASC" end |
#default=(val) ⇒ Object
48 49 50 |
# File 'lib/presenting/sorting.rb', line 48 def default=(val) @default = "#{fields.find{|f| f.name == val.first.to_s}.sql} #{desc_or_asc val.second}" end |
#fields ⇒ Object
25 26 27 |
# File 'lib/presenting/sorting.rb', line 25 def fields @fields ||= FieldSet.new end |
#fields=(obj) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/presenting/sorting.rb', line 13 def fields=(obj) case obj when Array obj.each do |name| fields << name end when Hash obj.each do |k, v| fields << {k => v} end end end |
#to_sql(param) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/presenting/sorting.rb', line 29 def to_sql(param) fields.each do |field| # search for and return the first known field return "#{field.sql} #{desc_or_asc param[field.name]}" if param[field.name] end unless param.blank? # no known fields found default end |