Module: Workarea::Testing::CassettePersister

Extended by:
CassettePersister
Included in:
CassettePersister
Defined in:
lib/workarea/testing/cassette_persister.rb

Instance Method Summary collapse

Instance Method Details

#[](file_name) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/workarea/testing/cassette_persister.rb', line 6

def [](file_name)
  path = absolute_path_to_file(file_name)

  if path.nil?
    nil
  else
    File.binread(path)
  end
end

#[]=(file_name, content) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/workarea/testing/cassette_persister.rb', line 16

def []=(file_name, content)
  directory = if TestCase.running_in_dummy_app?
                Rails.root.join('..', 'vcr_cassettes')
              else
                Rails.root.join('test', 'vcr_cassettes')
              end

  path = directory.join(file_name)
  directory = File.dirname(path)
  FileUtils.mkdir_p(directory) unless File.exist?(directory)
  File.binwrite(path, content)
end

#absolute_path_to_file(file_name) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/workarea/testing/cassette_persister.rb', line 29

def absolute_path_to_file(file_name)
  roots = [Rails.root] +
            Workarea::Plugin.installed.map(&:root) +
            [Workarea::Core::Engine.root]

  roots
    .map { |root| root.join('test', 'vcr_cassettes', file_name) }
    .detect { |path| File.exist?(path) }
end