Class: Administrate::Order

Inherits:
Object
  • Object
show all
Defined in:
lib/administrate/order.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attribute = nil, direction = nil, association_attribute: nil) ⇒ Order

Returns a new instance of Order.



3
4
5
6
7
# File 'lib/administrate/order.rb', line 3

def initialize(attribute = nil, direction = nil, association_attribute: nil)
  @attribute = attribute
  @direction = sanitize_direction(direction)
  @association_attribute = association_attribute
end

Instance Attribute Details

#directionObject (readonly)

Returns the value of attribute direction.



32
33
34
# File 'lib/administrate/order.rb', line 32

def direction
  @direction
end

Instance Method Details

#apply(relation) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/administrate/order.rb', line 9

def apply(relation)
  return order_by_association(relation) unless
    reflect_association(relation).nil?

  order = relation.arel_table[attribute].public_send(direction)

  return relation.reorder(order) if
    column_exist?(relation, attribute)

  relation
end

#order_params_for(attr) ⇒ Object



25
26
27
28
29
30
# File 'lib/administrate/order.rb', line 25

def order_params_for(attr)
  {
    order: attr,
    direction: reversed_direction_param_for(attr)
  }
end

#ordered_by?(attr) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/administrate/order.rb', line 21

def ordered_by?(attr)
  attr.to_s == attribute.to_s
end