Class: Wallaby::Sorting::LinkBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/services/wallaby/sorting/link_builder.rb

Overview

Build the sorting link

Instance Method Summary collapse

Constructor Details

#initialize(model_decorator, params, helper) ⇒ LinkBuilder

Returns a new instance of LinkBuilder.



7
8
9
10
11
# File 'lib/services/wallaby/sorting/link_builder.rb', line 7

def initialize(model_decorator, params, helper)
  @model_decorator = model_decorator
  @params = params
  @helper = helper
end

Instance Method Details

#build(field_name) ⇒ String

Build sort link for given field name

Parameters:

  • field_name (String)

Returns:

  • (String)

    link



22
23
24
25
26
27
28
29
# File 'lib/services/wallaby/sorting/link_builder.rb', line 22

def build(field_name)
   = @model_decorator. field_name
  label = Utils.to_field_label field_name, 
  return label unless sortable? 
  sort_field_name = [:sort_field_name] || field_name
  url_params = next_builder.next_params sort_field_name
  @helper.index_link(model_class, url_params: url_params) { label }
end

#current_sortHash

To turn sort string into a hash for later usage

Returns:

  • (Hash)


15
16
17
# File 'lib/services/wallaby/sorting/link_builder.rb', line 15

def current_sort
  @current_sort ||= HashBuilder.build @params[:sort]
end