Class: FrontEndLoader::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/front_end_loader/request.rb

Instance Method Summary collapse

Constructor Details

#initialize(experiment, session, method, name, path, params, data, files = {}, response_block) ⇒ Request

Returns a new instance of Request.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/front_end_loader/request.rb', line 3

def initialize(experiment, session, method, name, path, params, data, files = {}, response_block)
  @experiment = experiment
  @session = session
  @method = method
  @name = name
  @path = path
  @files = files

  @headers = @experiment.default_headers || {}

  param_hash = @experiment.default_parameters ? @experiment.default_parameters.merge(params) : params
  @params = URI.encode(param_hash.map { |k,v| "#{k}=#{v}" }.join('&'))

  @data = data
  @response_block = response_block
end

Instance Method Details

#runObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/front_end_loader/request.rb', line 20

def run
  response = nil
  if [:get, :delete, :propfind, :report].include?(@method)
    response = @experiment.time_call(@name) do
      @session.__send__(@method, "#{@path}?#{@params}", @headers)
    end
  elsif @method == :post_multipart
    response = @experiment.time_call(@name) do
      @session.post_multipart("#{@path}?#{@params}", @data, @files, @headers)
    end
  else
    response = @experiment.time_call(@name) do
      @session.__send__(@method, "#{@path}?#{@params}", @data, @headers)
    end
  end
  if @response_block && response.is_a?(Patron::Response)
    @response_block.call(response)
  end
end