Class: Algolia::Transport::RequestOptions

Inherits:
Object
  • Object
show all
Defined in:
lib/algolia/transport/request_options.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ RequestOptions

Returns a new instance of RequestOptions.

Parameters:



8
9
10
11
12
13
14
15
# File 'lib/algolia/transport/request_options.rb', line 8

def initialize(config)
  @headers          = {}
  @params           = {}
  @data             = {}
  @timeout          = nil
  @connect_timeout  = nil
  @compression_type = config.compression_type
end

Instance Attribute Details

#compression_typeObject

Returns the value of attribute compression_type.



4
5
6
# File 'lib/algolia/transport/request_options.rb', line 4

def compression_type
  @compression_type
end

#connect_timeoutObject

Returns the value of attribute connect_timeout.



4
5
6
# File 'lib/algolia/transport/request_options.rb', line 4

def connect_timeout
  @connect_timeout
end

#dataObject

Returns the value of attribute data.



4
5
6
# File 'lib/algolia/transport/request_options.rb', line 4

def data
  @data
end

#headersObject

Returns the value of attribute headers.



4
5
6
# File 'lib/algolia/transport/request_options.rb', line 4

def headers
  @headers
end

#paramsObject

Returns the value of attribute params.



4
5
6
# File 'lib/algolia/transport/request_options.rb', line 4

def params
  @params
end

#timeoutObject

Returns the value of attribute timeout.



4
5
6
# File 'lib/algolia/transport/request_options.rb', line 4

def timeout
  @timeout
end

Instance Method Details

#add_compression_type(opts = {}) ⇒ Object

Add or update compression_type

Parameters:

  • opts (Hash) (defaults to: {})


78
79
80
81
# File 'lib/algolia/transport/request_options.rb', line 78

def add_compression_type(opts = {})
  @compression_type = opts[:compression_type] || @compression_type
  opts.delete(:compression_type)
end

#add_connect_timeout(opts = {}) ⇒ Object

Add or update connect timeout

Parameters:

  • opts (Hash) (defaults to: {})


69
70
71
72
# File 'lib/algolia/transport/request_options.rb', line 69

def add_connect_timeout(opts = {})
  @connect_timeout = opts[:connect_timeout] || @connect_timeout
  opts.delete(:connect_timeout)
end

#add_data_body(opts = {}) ⇒ Object

Parameters:

  • opts (Hash) (defaults to: {})


85
86
87
88
89
90
91
# File 'lib/algolia/transport/request_options.rb', line 85

def add_data_body(opts = {})
  unless opts.empty?
    opts.each do |key, value|
      @data[key.to_sym] = value
    end
  end
end

#add_headers(opts = {}) ⇒ Object

Add or update headers

Parameters:

  • opts (Hash) (defaults to: {})


34
35
36
37
38
39
40
41
# File 'lib/algolia/transport/request_options.rb', line 34

def add_headers(opts = {})
  unless opts[:headers].nil?
    opts[:headers].each do |opt, value|
      @headers[opt.to_s] = value
    end
    opts.delete(:headers)
  end
end

#add_params(opts = {}) ⇒ Object

Add or update query parameters

Parameters:

  • opts (Hash) (defaults to: {})


47
48
49
50
51
52
53
54
# File 'lib/algolia/transport/request_options.rb', line 47

def add_params(opts = {})
  unless opts[:params].nil?
    opts[:params].each do |opt, value|
      @params[opt.to_sym] = value
    end
    opts.delete(:params)
  end
end

#add_timeout(opts = {}) ⇒ Object

Add or update timeout

Parameters:

  • opts (Hash) (defaults to: {})


60
61
62
63
# File 'lib/algolia/transport/request_options.rb', line 60

def add_timeout(opts = {})
  @timeout = opts[:timeout] || @timeout
  opts.delete(:timeout)
end

#create(opts = {}) ⇒ Object

Create and format headers and params from request options

Parameters:

  • opts (Hash) (defaults to: {})


21
22
23
24
25
26
27
28
# File 'lib/algolia/transport/request_options.rb', line 21

def create(opts = {})
  add_headers(opts)
  add_params(opts)
  add_timeout(opts)
  add_connect_timeout(opts)
  add_compression_type(opts)
  add_data_body(opts)
end