Sha256: cf49833511df7f5a99d4d1f1f55002489fbaa74f876a9f0f4cc6bbe1bf56df2a

Contents?: true

Size: 1004 Bytes

Versions: 30

Compression:

Stored size: 1004 Bytes

Contents

# frozen_string_literal: true

require 'active_support'

module LHC
  module BasicMethodsConcern
    extend ActiveSupport::Concern

    module ClassMethods
      def request(options)
        if options.is_a? Array
          parallel_requests(options)
        else
          LHC::Request.new(options).response
        end
      end

      [:get, :post, :put, :delete].each do |http_method|
        define_method(http_method) do |url, options = {}|
          request(options.merge(
                    url: url,
                    method: http_method
                  ))
        end
      end

      private

      def parallel_requests(options)
        hydra = Typhoeus::Hydra.new # do not use memoization !
        requests = []
        options.each do |option|
          request = LHC::Request.new(option, false)
          requests << request
          hydra.queue request.raw unless request.response.present?
        end
        hydra.run
        requests.map(&:response)
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
lhc-15.2.1 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-15.2.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-15.1.3 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-15.1.2 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-15.1.1 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-15.1.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-16.0.0.pre.pro2162.2 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-16.0.0.pre.pro2162 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-15.0.1 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-15.0.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-14.0.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-13.4.0.pre.pro1766.1 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-13.2.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-13.1.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-13.0.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-12.3.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-12.2.1 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-12.2.0 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-12.1.3 lib/lhc/concerns/lhc/basic_methods_concern.rb
lhc-12.1.2 lib/lhc/concerns/lhc/basic_methods_concern.rb