Module: RecordNavigationHelper

Overview

An interface implemented by model helpers requiring previous/next/parents navigation links.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.for(model_name) ⇒ Object

<model>Helper.

Returns:

  • (Object)

    An object implementing the helper methods from



6
7
8
9
# File 'app/helpers/record_navigation_helper.rb', line 6

def self.for(model_name)
  helper_module = "#{model_name.pluralize}Helper".constantize # can explode
  return Object.new.extend(helper_module)
end

Instance Method Details

#next_records(object) ⇒ Object

Returns !!Array!!.

Returns:

  • !!Array!!



28
29
30
31
32
33
34
35
36
# File 'app/helpers/record_navigation_helper.rb', line 28

def next_records(object)
  o = object.class
    .where(project_id: object.project_id)
    .where('id > ?', object.id)
    .order(:id)
    .first

  [o].compact
end

#parent_records(object) ⇒ Object

Returns Array.

Returns:

  • Array



12
13
14
# File 'app/helpers/record_navigation_helper.rb', line 12

def parent_records(object)
  []
end

#previous_records(object) ⇒ Object

Returns !!Array!!.

Returns:

  • !!Array!!



17
18
19
20
21
22
23
24
25
# File 'app/helpers/record_navigation_helper.rb', line 17

def previous_records(object)
  o = object.class
    .where(project_id: object.project_id)
    .where('id < ?', object.id)
    .order(id: :desc)
    .first

  [o].compact
end