Sha256: cc72c4df9eef5df4768c270f314817ab8ca41d3d4ba4fbed3d6cf50e589653e3

Contents?: true

Size: 1.15 KB

Versions: 163

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module Checkoff
  module Internal
    module SearchUrl
      # Merge task selectors and search API arguments
      class ResultsMerger
        # @param args [Array<[Hash<String, String>]>]
        # @return [Hash<String, String>
        def self.merge_args(*args)
          # first element of args
          # @sg-ignore
          # @type [Hash<String, String>]
          f = args.fetch(0)
          # rest of args
          r = args.drop(0)
          f.merge(*r)
        end

        # @param task_selectors [Array<Array<[Symbol, Array]>>]
        # @return [Array<[Symbol, Array]>]
        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
      end
    end
  end
end

Version data entries

163 entries across 163 versions & 1 rubygems

Version Path
checkoff-0.222.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.221.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.220.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.219.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.218.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.217.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.216.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.215.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.214.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.213.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.212.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.211.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.210.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.209.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.208.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.207.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.206.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.205.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.204.0 lib/checkoff/internal/search_url/results_merger.rb
checkoff-0.203.0 lib/checkoff/internal/search_url/results_merger.rb