Class: Sidekiq::Tasks::Web::Search

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq/tasks/web/search.rb

Constant Summary collapse

DEFAULT_COUNT =
15

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Search

Returns a new instance of Search.



13
14
15
# File 'lib/sidekiq/tasks/web/search.rb', line 13

def initialize(params)
  @params = params
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



11
12
13
# File 'lib/sidekiq/tasks/web/search.rb', line 11

def params
  @params
end

Class Method Details

.count_optionsObject



7
8
9
# File 'lib/sidekiq/tasks/web/search.rb', line 7

def self.count_options
  (0..3).map { |index| DEFAULT_COUNT * (2**index) }
end

Instance Method Details

#countObject



31
32
33
34
35
# File 'lib/sidekiq/tasks/web/search.rb', line 31

def count
  requested_count = params[:count].to_i

  requested_count.positive? ? requested_count : DEFAULT_COUNT
end

#filterObject



25
26
27
28
29
# File 'lib/sidekiq/tasks/web/search.rb', line 25

def filter
  request_filter = params[:filter]

  ["", nil].include?(request_filter) ? nil : request_filter
end

#filtered_collectionObject



21
22
23
# File 'lib/sidekiq/tasks/web/search.rb', line 21

def filtered_collection
  @_filtered_collection ||= Sidekiq::Tasks.tasks.where(name: filter)
end

#offsetObject



47
48
49
# File 'lib/sidekiq/tasks/web/search.rb', line 47

def offset
  (page - 1) * count
end

#pageObject



37
38
39
40
41
# File 'lib/sidekiq/tasks/web/search.rb', line 37

def page
  requested_page = params[:page].to_i

  requested_page.positive? ? requested_page : 1
end

#tasksObject



17
18
19
# File 'lib/sidekiq/tasks/web/search.rb', line 17

def tasks
  @_tasks ||= filtered_collection.sort_by(&:file).slice(offset, count) || []
end

#total_pagesObject



43
44
45
# File 'lib/sidekiq/tasks/web/search.rb', line 43

def total_pages
  (filtered_collection.size.to_f / count).ceil
end