Class: PhiltreRails::OrderLink

Inherits:
Object
  • Object
show all
Defined in:
lib/philtre-rails/order_link.rb

Overview

Used by order_by helper to generate ordering links.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(expr, active: false) ⇒ OrderLink

expr is a Sequel::SQL::OrderedExpression



5
6
7
8
# File 'lib/philtre-rails/order_link.rb', line 5

def initialize( expr, active: false )
  @expr = expr
  @active = active
end

Instance Attribute Details

#activeObject (readonly)

Returns the value of attribute active.



10
11
12
# File 'lib/philtre-rails/order_link.rb', line 10

def active
  @active
end

#exprObject (readonly)

Returns the value of attribute expr.



10
11
12
# File 'lib/philtre-rails/order_link.rb', line 10

def expr
  @expr
end

Instance Method Details

#css_classObject

class of the generated <a…>



20
21
22
23
24
# File 'lib/philtre-rails/order_link.rb', line 20

def css_class
  if active
    expr.descending ? 'descending' : 'ascending'
  end
end

#iconObject

appended to the label



13
14
15
16
17
# File 'lib/philtre-rails/order_link.rb', line 13

def icon
  if active
    expr.descending ? '&#9660;' : '&#9650;'
  end
end

#nameObject

this value ends up in the order array of the parameter hash



27
28
29
30
31
32
33
# File 'lib/philtre-rails/order_link.rb', line 27

def name
  if active
    expr.descending ? "#{expr.expression}_desc" : "#{expr.expression}_asc"
  else
    expr.expression
  end.to_s
end