Class: VCR::Request

Inherits:
Struct
  • Object
show all
Defined in:
lib/vcr/structs.rb

Overview

The request of an HTTPInteraction.

Defined Under Namespace

Classes: FiberAware, Typed

Constant Summary collapse

@@object_method =
Object.instance_method(:method)

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Request

Returns a new instance of Request.



189
190
191
192
193
194
195
196
197
198
199
# File 'lib/vcr/structs.rb', line 189

def initialize(*args)
  skip_port_stripping = false
  if args.last == :skip_port_stripping
    skip_port_stripping = true
    args.pop
  end

  super(*args)
  self.method = self.method.to_s.downcase.to_sym if self.method
  self.uri = without_standard_port(self.uri) unless skip_port_stripping
end

Instance Attribute Details

#bodyString?

the request body

Returns:

  • (String, nil)

    the current value of body



185
186
187
# File 'lib/vcr/structs.rb', line 185

def body
  @body
end

#headersHash{String => Array<String>}

the request headers

Returns:

  • (Hash{String => Array<String>})

    the current value of headers



185
186
187
# File 'lib/vcr/structs.rb', line 185

def headers
  @headers
end

#method(*args) ⇒ Symbol

the HTTP method (i.e. :head, :options, :get, :post, :put, :patch or :delete)

Returns:

  • (Symbol)

    the current value of method



185
186
187
# File 'lib/vcr/structs.rb', line 185

def method
  @method
end

#uriString

the request URI

Returns:

  • (String)

    the current value of uri



185
186
187
# File 'lib/vcr/structs.rb', line 185

def uri
  @uri
end

Class Method Details

.from_hash(hash) ⇒ Request

Constructs a new instance from a hash.

Parameters:

  • hash (Hash)

    the hash to use to construct the instance.

Returns:



219
220
221
222
223
224
225
226
227
# File 'lib/vcr/structs.rb', line 219

def self.from_hash(hash)
  method = hash['method']
  method &&= method.to_sym
  new method,
      hash['uri'],
      body_from(hash['body']),
      hash['headers'],
      :skip_port_stripping
end

Instance Method Details

#to_hashHash

Builds a serializable hash from the request data.

Returns:

  • (Hash)

    hash that represents this request and can be easily serialized.

See Also:



206
207
208
209
210
211
212
213
# File 'lib/vcr/structs.rb', line 206

def to_hash
  {
    'method'  => method.to_s,
    'uri'     => uri,
    'body'    => serializable_body,
    'headers' => headers
  }.tap { |h| OrderedHashSerializer.apply_to(h, members) }
end