Module: Terrazzo::HasManyPagination

Defined in:
lib/terrazzo/has_many_pagination.rb

Constant Summary collapse

PARAM_PREFIX =
"hm_".freeze
PARAM_SUFFIX =
"_page".freeze

Class Method Summary collapse

Class Method Details

.extract(params, attributes) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/terrazzo/has_many_pagination.rb', line 8

def extract(params, attributes)
  attributes.each_with_object({}) do |attr, result|
    value = params[param_key(attr)] ||
      params[param_key(attr).to_sym] ||
      params[legacy_param_key(attr)] ||
      params[legacy_param_key(attr).to_sym]
    next if value.nil?
    result[attr.to_sym] = { _page: value.to_i }
  end
end

.legacy_param_key(attribute) ⇒ Object



23
24
25
# File 'lib/terrazzo/has_many_pagination.rb', line 23

def legacy_param_key(attribute)
  "#{attribute}#{PARAM_SUFFIX}"
end

.param_key(attribute) ⇒ Object



19
20
21
# File 'lib/terrazzo/has_many_pagination.rb', line 19

def param_key(attribute)
  "#{PARAM_PREFIX}#{attribute}#{PARAM_SUFFIX}"
end