Module: Datagrid::Ordering

Defined in:
lib/datagrid/ordering.rb

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/datagrid/ordering.rb', line 8

def self.included(base)
  base.extend         ClassMethods
  base.class_eval do
    include Datagrid::Columns

    datagrid_attribute :order do |value|
      unless value.blank?
        value = value.to_sym
        column = column_by_name(value)
        unless column 
          order_unsupported(value, "no column #{value} in #{self.class}")
        end
        unless column.supports_order?
          order_unsupported(column.name, "column don't support order" ) 
        end
        value
      else
        nil
      end

    end

    datagrid_attribute :descending do |value|
      Datagrid::Utils.booleanize(value)
    end
    alias descending? descending

  end
  base.send :include, InstanceMethods
end