Class: Checkoff::Internal::SearchUrl::ResultsMerger
- Inherits:
-
Object
- Object
- Checkoff::Internal::SearchUrl::ResultsMerger
- Defined in:
- lib/checkoff/internal/search_url/results_merger.rb
Overview
Merge task selectors and search API arguments
Class Method Summary collapse
- .merge_args(*args) ⇒ Hash{String => String}
- .merge_task_selectors(*task_selectors) ⇒ Array(Symbol, Array, Array)
Class Method Details
.merge_args(*args) ⇒ Hash{String => String}
11 12 13 14 15 16 17 |
# File 'lib/checkoff/internal/search_url/results_merger.rb', line 11 def self.merge_args(*args) # first element of args f = args.fetch(0) # rest of args r = args.drop(0) f.merge(*r) end |
.merge_task_selectors(*task_selectors) ⇒ Array(Symbol, Array, Array)
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/checkoff/internal/search_url/results_merger.rb', line 21 def self.merge_task_selectors(*task_selectors) return [] if task_selectors.empty? first_task_selector = task_selectors.fetch(0) return merge_task_selectors(*task_selectors.drop(1)) if first_task_selector.empty? return first_task_selector if task_selectors.length == 1 rest_task_selectors = merge_task_selectors(*task_selectors.drop(1)) return first_task_selector if rest_task_selectors.empty? [:and, first_task_selector, rest_task_selectors] end |