Class: VCR::UnusedCassettes::Runner
- Inherits:
-
Object
- Object
- VCR::UnusedCassettes::Runner
- Defined in:
- lib/vcr/unused_cassettes/runner.rb
Instance Method Summary collapse
- #all_vcr_persisters ⇒ Object
- #cassette_path_with_wildcard(name, persister) ⇒ Object
- #default_or_option(type, option_name, cassette_use) ⇒ Object
- #default_persister ⇒ Object
- #find_existing_cassettes ⇒ Object
- #find_unused_cassettes ⇒ Object
- #path_for_cassette(cassette_name, persister) ⇒ Object
- #path_for_cassette_use(cassette_use) ⇒ Object
- #used_cassettes_names_patterns ⇒ Object
Instance Method Details
#all_vcr_persisters ⇒ Object
74 75 76 77 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 74 def all_vcr_persisters # dirty, but VCR::Cassette::Persisters does not expose the persisters VCR.cassette_persisters.instance_variable_get(:@persisters) end |
#cassette_path_with_wildcard(name, persister) ⇒ Object
47 48 49 50 51 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 47 def cassette_path_with_wildcard(name, persister) placeholder = "a_placeholder_that_should_not_exist" full_path = path_for_cassette(name.gsub("*", placeholder), persister) full_path.sub(placeholder, "*") end |
#default_or_option(type, option_name, cassette_use) ⇒ Object
60 61 62 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 60 def default_or_option(type, option_name, cassette_use) cassette_use[type] || VCR.configuration.[option_name] end |
#default_persister ⇒ Object
53 54 55 56 57 58 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 53 def default_persister @default_persister ||= begin default_persister = VCR.configuration.[:persist_with] VCR.configuration.cassette_persisters[default_persister] end end |
#find_existing_cassettes ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 33 def find_existing_cassettes cassettes = [] all_vcr_persisters.each do |_name, persister| cassettes += Dir.glob(cassette_path_with_wildcard("*", persister)) end cassettes.uniq end |
#find_unused_cassettes ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 5 def find_unused_cassettes existing_cassettes = find_existing_cassettes cassette_uses, warnings = used_cassettes_names_patterns cassette_uses.map! { |cassette_use| path_for_cassette_use(cassette_use) } unused_cassettes = existing_cassettes.select do |existing_cassette_name| !cassette_uses.any? { |used_cassette_name| File.fnmatch?(used_cassette_name, existing_cassette_name) } end [unused_cassettes, warnings] end |
#path_for_cassette(cassette_name, persister) ⇒ Object
41 42 43 44 45 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 41 def path_for_cassette(cassette_name, persister) result = persister.absolute_path_to_file(cassette_name) return result.to_s if result raise Error, "Could not determine path for cassette #{cassette_name}" end |
#path_for_cassette_use(cassette_use) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 64 def path_for_cassette_use(cassette_use) persister_name = default_or_option(:persister, :persist_with, cassette_use) persister = VCR.configuration.cassette_persisters[persister_name] serializer_name = default_or_option(:serializer, :serialize_with, cassette_use) serializer = VCR.cassette_serializers[serializer_name] cassette_storage_key = "#{cassette_use[:pattern]}.#{serializer.file_extension}" cassette_path_with_wildcard(cassette_storage_key, persister) end |
#used_cassettes_names_patterns ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/vcr/unused_cassettes/runner.rb', line 17 def used_cassettes_names_patterns used_cassettes = [] warnings = [] file_list = `grep -r -l "VCR.use_cassette" test/`.split("\n") return [[], []] if file_list.empty? || $? != 0 file_list.each do |file| found_usages, found_warnings = CassetteUsageFinder.new(file).find_cassette_usages used_cassettes += found_usages warnings += found_warnings end [used_cassettes, warnings] end |