Class: VCR::HTTPInteraction

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

Overview

Represents a single interaction over HTTP, containing a request and a response.

Direct Known Subclasses

HookAware

Defined Under Namespace

Classes: HookAware

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ HTTPInteraction

Returns a new instance of HTTPInteraction.



502
503
504
505
# File 'lib/vcr/structs.rb', line 502

def initialize(*args)
  super
  self.recorded_at ||= Time.now
end

Instance Attribute Details

#recorded_atTime

when this HTTP interaction was recorded

Returns:

  • (Time)

    the current value of recorded_at



501
502
503
# File 'lib/vcr/structs.rb', line 501

def recorded_at
  @recorded_at
end

#requestRequest

the request

Returns:

  • (Request)

    the current value of request



501
502
503
# File 'lib/vcr/structs.rb', line 501

def request
  @request
end

#responseResponse

the response

Returns:

  • (Response)

    the current value of response



501
502
503
# File 'lib/vcr/structs.rb', line 501

def response
  @response
end

Class Method Details

.from_hash(hash) ⇒ HTTPInteraction

Constructs a new instance from a hash.

Parameters:

  • hash (Hash)

    the hash to use to construct the instance.

Returns:



524
525
526
527
528
# File 'lib/vcr/structs.rb', line 524

def self.from_hash(hash)
  new Request.from_hash(hash.fetch('request', {})),
      Response.from_hash(hash.fetch('response', {})),
      Time.httpdate(hash.fetch('recorded_at'))
end

Instance Method Details

#hook_awareHookAware

Returns an instance with additional capabilities suitable for use in ‘before_record` and `before_playback` hooks.

Returns:

  • (HookAware)

    an instance with additional capabilities suitable for use in ‘before_record` and `before_playback` hooks.



532
533
534
# File 'lib/vcr/structs.rb', line 532

def hook_aware
  HookAware.new(self)
end

#to_hashHash

Builds a serializable hash from the HTTP interaction data.

Returns:

  • (Hash)

    hash that represents this HTTP interaction and can be easily serialized.

See Also:



512
513
514
515
516
517
518
# File 'lib/vcr/structs.rb', line 512

def to_hash
  {
    'request'     => request.to_hash,
    'response'    => response.to_hash,
    'recorded_at' => recorded_at.httpdate
  }
end