Class: Trestle::SortHelper::SortLink

Inherits:
Object
  • Object
show all
Defined in:
app/helpers/trestle/sort_helper.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(field, params, default: false, default_order: "asc") ⇒ SortLink



36
37
38
39
40
41
# File 'app/helpers/trestle/sort_helper.rb', line 36

def initialize(field, params, default: false, default_order: "asc")
  @field, @params = field, params

  @default = default
  @default_order = default_order.to_s
end

Instance Attribute Details

#fieldObject (readonly)

Returns the value of attribute field.



34
35
36
# File 'app/helpers/trestle/sort_helper.rb', line 34

def field
  @field
end

Instance Method Details

#active?Boolean



43
44
45
# File 'app/helpers/trestle/sort_helper.rb', line 43

def active?
  @params[:sort] == field.to_s || (default? && !@params.key?(:sort))
end

#classesObject



71
72
73
74
75
76
77
78
79
80
# File 'app/helpers/trestle/sort_helper.rb', line 71

def classes
  classes = ["sort"]

  if active?
    classes << "sort-#{current_order}"
    classes << "active"
  end

  classes
end

#current_orderObject



59
60
61
# File 'app/helpers/trestle/sort_helper.rb', line 59

def current_order
  @params[:order] || default_order
end

#default?Boolean



63
64
65
# File 'app/helpers/trestle/sort_helper.rb', line 63

def default?
  @default
end

#default_orderObject



67
68
69
# File 'app/helpers/trestle/sort_helper.rb', line 67

def default_order
  @default_order
end

#orderObject



51
52
53
54
55
56
57
# File 'app/helpers/trestle/sort_helper.rb', line 51

def order
  if active?
    reverse_order(current_order)
  else
    default_order
  end
end

#paramsObject



47
48
49
# File 'app/helpers/trestle/sort_helper.rb', line 47

def params
  @params.merge(sort: field, order: order)
end

#reverse_order(order) ⇒ Object



82
83
84
# File 'app/helpers/trestle/sort_helper.rb', line 82

def reverse_order(order)
  order == "asc" ? "desc" : "asc"
end