rspec-cassette 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81ec6b2f1d492c9ed7a6aa19fcb7b2c4ad0b3eaed666158425cf271a96ddf485
4
- data.tar.gz: 218103dde5699758cb6a0d313208ae980403c1ee802dba5606e1c62dbb436a6b
3
+ metadata.gz: 67dfa93eac9cae1c07b731184e9011207a44ba31f961f14662aac20c84dca3b7
4
+ data.tar.gz: ed094afc5cb2feccb559efb357999421faca1e6711eb5817ffde979d928b9230
5
5
  SHA512:
6
- metadata.gz: 50b1d99905f0ef3dd2911cebb3a1a51d68b886dbda1c6f746ce3636357c47eceb98bac05cc0e5997e3a2dd702eb5c09be4ab37e57cc1603e7328f5abe5c5a89d
7
- data.tar.gz: c15f0926711bd33265db8c142a50dc54c32f65a097d83c320bee452c2f96147d64355301000c2dd12a8650180e775e2d3544ea4986d4d030fa0f7ad64e8ae025
6
+ metadata.gz: 28419926d4f0d91d682d0edce2a745f6245dd167c3ea83ff3d8276ae34357b4dfeffd656875bc8ce34ba0d439dcd87cb78e55ca1b7cceb9d8b490248c78f56c3
7
+ data.tar.gz: 32552c50d74803caf941e65bc4f31ef2584c9d7a2a973ef6f58437ce36862299e303718e691d71d7bf6223f6e831f92bdf5c7c225ab70852b10d40224dd2ff64
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 (2026-02-17)
4
+
5
+ - Improve sanitization to support non-ASCII characters in cassette names derived from VCR metadata.
6
+
3
7
  ## 0.2.0 (2026-02-17)
4
8
 
5
9
  - Add MetadataResolver to support VCR-compatible `vcr:` metadata alongside existing `use_cassette:` metadata.
@@ -93,20 +93,31 @@ module RSpec
93
93
  end
94
94
 
95
95
  def build_vcr_compatible_cassette_name
96
- parts = example.example_group.parent_groups.reverse.map(&:description)
97
- parts << example.description
98
-
99
- parts
100
- .compact
101
- .map(&:to_s)
102
- .map(&:strip)
103
- .reject(&:empty?)
104
- .map { |part| normalize_cassette_name_part(part) }
105
- .join("/")
96
+ sanitize_cassette_name(self.class.build_name_from_metadata(metadata))
106
97
  end
107
98
 
108
- def normalize_cassette_name_part(part)
109
- part.split("/").map { |segment| segment.gsub(/[^\w]+/, "_") }.join("/")
99
+ def sanitize_cassette_name(name)
100
+ name.gsub(/[^[:word:]\-\/]+/, "_")
101
+ end
102
+
103
+ def self.build_name_from_metadata(source_metadata)
104
+ description =
105
+ if source_metadata[:description].to_s.empty?
106
+ source_metadata[:scoped_id].to_s
107
+ else
108
+ source_metadata[:description].to_s
109
+ end
110
+ example_group = if source_metadata.key?(:example_group)
111
+ source_metadata[:example_group]
112
+ else
113
+ source_metadata[:parent_example_group]
114
+ end
115
+
116
+ if example_group
117
+ [build_name_from_metadata(example_group), description].join("/")
118
+ else
119
+ description
120
+ end
110
121
  end
111
122
  end
112
123
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSpec
4
4
  module Cassette
5
- VERSION = "0.2.0"
5
+ VERSION = "0.3.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-cassette
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yudai Takada