Module: Lipstick::Sortable::ClassMethods

Defined in:
lib/lipstick/sortable.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sortable_by_casesObject (readonly)

Returns the value of attribute sortable_by_cases.



21
22
23
# File 'lib/lipstick/sortable.rb', line 21

def sortable_by_cases
  @sortable_by_cases
end

#sortable_by_elseObject (readonly)

Returns the value of attribute sortable_by_else.



21
22
23
# File 'lib/lipstick/sortable.rb', line 21

def sortable_by_else
  @sortable_by_else
end

Instance Method Details

#sortable_by(sort_cases, sort_else) ⇒ Object



23
24
25
26
# File 'lib/lipstick/sortable.rb', line 23

def sortable_by(sort_cases, sort_else)
  @sortable_by_cases = sort_cases
  @sortable_by_else = sort_else
end

#sortable_sort(sort_by, direction) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/lipstick/sortable.rb', line 28

def sortable_sort(sort_by, direction)
  sort_by = sort_by&.to_sym
  direction = Lipstick::Sortable.direction(direction)

  if sort_by && sortable_by_cases.key?(sort_by)
    sortable_by_cases[sort_by].call(direction)
  else
    sortable_by_else.call(direction)
  end
end