module Workarea::Testing::CassettePersister

Public Instance Methods

[](file_name) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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