Class: Qualspec::Recorder

Inherits:
Object
  • Object
show all
Defined in:
lib/qualspec/recorder.rb

Class Method Summary collapse

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
# File 'lib/qualspec/recorder.rb', line 6

def available?
  require 'vcr'
  true
rescue LoadError
  false
end

.configured?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/qualspec/recorder.rb', line 29

def configured?
  @configured == true
end

.playback(name, &block) ⇒ Object



38
39
40
41
# File 'lib/qualspec/recorder.rb', line 38

def playback(name, &block)
  setup unless configured?
  VCR.use_cassette(name, record: :none, &block)
end

.record(name, &block) ⇒ Object



33
34
35
36
# File 'lib/qualspec/recorder.rb', line 33

def record(name, &block)
  setup unless configured?
  VCR.use_cassette(name, &block)
end

.setup(cassette_dir: '.qualspec_cassettes') ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/qualspec/recorder.rb', line 13

def setup(cassette_dir: '.qualspec_cassettes')
  require_vcr!

  VCR.configure do |config|
    config.cassette_library_dir = cassette_dir
    config.hook_into :faraday
    config.default_cassette_options = {
      record: :new_episodes,
      match_requests_on: %i[method uri body]
    }
    # Filter out API keys
    config.filter_sensitive_data('<API_KEY>') { Qualspec.configuration.api_key }
  end
  @configured = true
end