webmock-twirp 0.6.0 → 0.6.1

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: 4d2e3419ce5ddc60c10c14e7cb33e806b6ee92c0f93787b5209a0e3eeb47638e
4
- data.tar.gz: 84b5215a00b57a531f24fde3298b0720bba7de7fd0553523af3ac3bd3df83cbf
3
+ metadata.gz: f44d4f0b68ccc1c1a8c71daa194f0944b99f0421c6bb6d59caada45d8bc84b74
4
+ data.tar.gz: 82508527da91c8c83c0429f2f2d620bea9f3b2ee830b939c5197a96419f0cc78
5
5
  SHA512:
6
- metadata.gz: 59acbce84012d937a66f6fe601a2ec0b49f9a56c384113c35371362b603907f201dea384f54e343e8759b9b397c732f8c03e185d2a72ab88f7bfb33ba5e3fa4b
7
- data.tar.gz: 536a0a49c744b98d3973e56c18e02ec0e968f14f71639ee4164808b6a07f545a6df416ee1b7e36b11bf877e8febad5163b634fe10a4d7fc3bfe9ddf6c1624f52
6
+ metadata.gz: 83955087dd9574578f74f855a783e9608d018ae6baebcd5e651be5c39e386de1269a549db70b8c86e93567a05560c4ef38b47d797aae0d48aec7a6e6e378010e
7
+ data.tar.gz: 197564dee4a94728bfd9065fee7bc6c03442d24e592b4efc2dacd6ad0ffd7adfbd704ac6343aa2178aaa22ad7702191dda4d31cf4af7b54d18354a65f87491a1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 0.6.1 (2026-11-08)
2
+ - Requires Ruby 3.2 or newer.
3
+ - Fix nested matchers like `with(date: include(year: 0))` not matching default-valued fields on google-protobuf 4.
4
+
1
5
  ### 0.6.0 (2025-02-11)
2
6
  - rspec matcher support
3
7
  - debug gem
data/Gemfile.lock CHANGED
@@ -1,85 +1,90 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- webmock-twirp (0.6.0)
4
+ webmock-twirp (0.6.1)
5
5
  twirp (>= 1)
6
6
  webmock (>= 3)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- addressable (2.8.7)
12
- public_suffix (>= 2.0.2, < 7.0)
13
- bigdecimal (3.1.9)
14
- crack (1.0.0)
11
+ addressable (2.9.0)
12
+ public_suffix (>= 2.0.2, < 8.0)
13
+ bigdecimal (4.1.3)
14
+ cgi (0.5.1)
15
+ crack (1.0.1)
15
16
  bigdecimal
16
17
  rexml
17
- date (3.4.1)
18
- debug (1.10.0)
18
+ date (3.5.1)
19
+ debug (1.11.1)
19
20
  irb (~> 1.10)
20
21
  reline (>= 0.3.8)
21
- diff-lcs (1.5.1)
22
- docile (1.4.1)
23
- faraday (2.12.1)
22
+ diff-lcs (1.6.2)
23
+ erb (4.0.4.1)
24
+ cgi (>= 0.3.3)
25
+ faraday (2.14.3)
24
26
  faraday-net_http (>= 2.0, < 3.5)
25
27
  json
26
28
  logger
27
- faraday-net_http (3.4.0)
28
- net-http (>= 0.5.0)
29
- google-protobuf (3.25.3)
30
- hashdiff (1.1.2)
31
- io-console (0.8.0)
32
- irb (1.15.1)
29
+ faraday-net_http (3.4.4)
30
+ net-http (~> 0.5)
31
+ google-protobuf (4.36.2)
32
+ bigdecimal
33
+ rake (~> 13.3)
34
+ hashdiff (1.2.1)
35
+ io-console (0.8.2)
36
+ irb (1.18.0)
33
37
  pp (>= 0.6.0)
38
+ prism (>= 1.3.0)
34
39
  rdoc (>= 4.0.0)
35
40
  reline (>= 0.4.2)
36
- json (2.9.0)
37
- logger (1.6.2)
38
- net-http (0.6.0)
39
- uri
40
- pp (0.6.2)
41
+ json (2.19.9)
42
+ logger (1.7.0)
43
+ net-http (0.9.1)
44
+ uri (>= 0.11.1)
45
+ pp (0.6.3)
41
46
  prettyprint
42
47
  prettyprint (0.2.0)
43
- psych (5.2.3)
48
+ prism (1.9.0)
49
+ psych (5.3.1)
44
50
  date
45
51
  stringio
46
- public_suffix (6.0.1)
47
- rack (3.1.9)
48
- rdoc (6.12.0)
52
+ public_suffix (6.0.2)
53
+ rack (3.2.8)
54
+ rake (13.4.2)
55
+ rdoc (7.2.0)
56
+ erb
49
57
  psych (>= 4.0.0)
50
- reline (0.6.0)
58
+ tsort
59
+ reline (0.6.3)
51
60
  io-console (~> 0.5)
52
- rexml (3.4.0)
53
- rspec (3.13.0)
61
+ rexml (3.4.4)
62
+ rspec (3.13.2)
54
63
  rspec-core (~> 3.13.0)
55
64
  rspec-expectations (~> 3.13.0)
56
65
  rspec-mocks (~> 3.13.0)
57
- rspec-core (3.13.2)
66
+ rspec-core (3.13.6)
58
67
  rspec-support (~> 3.13.0)
59
- rspec-expectations (3.13.3)
68
+ rspec-expectations (3.13.5)
60
69
  diff-lcs (>= 1.2.0, < 2.0)
61
70
  rspec-support (~> 3.13.0)
62
- rspec-mocks (3.13.2)
71
+ rspec-mocks (3.13.8)
63
72
  diff-lcs (>= 1.2.0, < 2.0)
64
73
  rspec-support (~> 3.13.0)
65
- rspec-support (3.13.2)
66
- simplecov (0.22.0)
67
- docile (~> 1.1)
68
- simplecov-html (~> 0.11)
69
- simplecov_json_formatter (~> 0.1)
70
- simplecov-html (0.13.1)
71
- simplecov_json_formatter (0.1.4)
72
- stringio (3.1.2)
73
- twirp (1.13.0)
74
+ rspec-support (3.13.7)
75
+ simplecov (1.2.0)
76
+ stringio (3.2.0)
77
+ tsort (0.2.0)
78
+ twirp (1.13.1)
74
79
  faraday (< 3)
75
80
  google-protobuf (>= 3.25, < 5.a)
76
81
  rack (>= 2.2.3)
77
- uri (1.0.2)
78
- webmock (3.25.0)
82
+ uri (1.1.1)
83
+ webmock (3.34.0)
79
84
  addressable (>= 2.8.0)
80
85
  crack (>= 0.3.2)
81
86
  hashdiff (>= 0.4.0, < 2.0.0)
82
- webrick (1.9.1)
87
+ webrick (1.9.2)
83
88
 
84
89
  PLATFORMS
85
90
  ruby
@@ -87,6 +92,7 @@ PLATFORMS
87
92
  DEPENDENCIES
88
93
  debug
89
94
  rack
95
+ rake
90
96
  rspec
91
97
  simplecov
92
98
  webmock-twirp!
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec path: ".."
4
+
5
+ gem "google-protobuf", "~> 3.25"
@@ -0,0 +1,101 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ webmock-twirp (0.6.1)
5
+ twirp (>= 1)
6
+ webmock (>= 3)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ addressable (2.9.0)
12
+ public_suffix (>= 2.0.2, < 8.0)
13
+ bigdecimal (4.1.3)
14
+ cgi (0.5.1)
15
+ crack (1.0.1)
16
+ bigdecimal
17
+ rexml
18
+ date (3.5.1)
19
+ debug (1.11.1)
20
+ irb (~> 1.10)
21
+ reline (>= 0.3.8)
22
+ diff-lcs (1.6.2)
23
+ erb (4.0.4.1)
24
+ cgi (>= 0.3.3)
25
+ faraday (2.14.3)
26
+ faraday-net_http (>= 2.0, < 3.5)
27
+ json
28
+ logger
29
+ faraday-net_http (3.4.4)
30
+ net-http (~> 0.5)
31
+ google-protobuf (3.25.5)
32
+ hashdiff (1.2.1)
33
+ io-console (0.8.2)
34
+ irb (1.18.0)
35
+ pp (>= 0.6.0)
36
+ prism (>= 1.3.0)
37
+ rdoc (>= 4.0.0)
38
+ reline (>= 0.4.2)
39
+ json (2.19.9)
40
+ logger (1.7.0)
41
+ net-http (0.9.1)
42
+ uri (>= 0.11.1)
43
+ pp (0.6.3)
44
+ prettyprint
45
+ prettyprint (0.2.0)
46
+ prism (1.9.0)
47
+ psych (5.3.1)
48
+ date
49
+ stringio
50
+ public_suffix (6.0.2)
51
+ rack (3.2.8)
52
+ rake (13.4.2)
53
+ rdoc (7.2.0)
54
+ erb
55
+ psych (>= 4.0.0)
56
+ tsort
57
+ reline (0.6.3)
58
+ io-console (~> 0.5)
59
+ rexml (3.4.4)
60
+ rspec (3.13.2)
61
+ rspec-core (~> 3.13.0)
62
+ rspec-expectations (~> 3.13.0)
63
+ rspec-mocks (~> 3.13.0)
64
+ rspec-core (3.13.6)
65
+ rspec-support (~> 3.13.0)
66
+ rspec-expectations (3.13.5)
67
+ diff-lcs (>= 1.2.0, < 2.0)
68
+ rspec-support (~> 3.13.0)
69
+ rspec-mocks (3.13.8)
70
+ diff-lcs (>= 1.2.0, < 2.0)
71
+ rspec-support (~> 3.13.0)
72
+ rspec-support (3.13.7)
73
+ simplecov (1.2.0)
74
+ stringio (3.2.0)
75
+ tsort (0.2.0)
76
+ twirp (1.13.1)
77
+ faraday (< 3)
78
+ google-protobuf (>= 3.25, < 5.a)
79
+ rack (>= 2.2.3)
80
+ uri (1.1.1)
81
+ webmock (3.34.0)
82
+ addressable (>= 2.8.0)
83
+ crack (>= 0.3.2)
84
+ hashdiff (>= 0.4.0, < 2.0.0)
85
+ webrick (1.9.2)
86
+
87
+ PLATFORMS
88
+ ruby
89
+
90
+ DEPENDENCIES
91
+ debug
92
+ google-protobuf (~> 3.25)
93
+ rack
94
+ rake
95
+ rspec
96
+ simplecov
97
+ webmock-twirp!
98
+ webrick
99
+
100
+ BUNDLED WITH
101
+ 2.4.20
@@ -1,6 +1,25 @@
1
1
  module WebMock
2
2
  module Twirp
3
3
  module Refinements
4
+ # Message#to_h, but keeping default-valued fields, which google-protobuf 4 drops
5
+ def self.to_h_with_defaults(value)
6
+ case value
7
+ when Google::Protobuf::MessageExts
8
+ value.class.descriptor.to_h do |field|
9
+ [ field.name.to_sym, to_h_with_defaults(field.get(value)) ]
10
+ end
11
+ when Google::Protobuf::RepeatedField
12
+ value.map { |x| to_h_with_defaults(x) }
13
+ when Google::Protobuf::Map
14
+ # Map#to_h ignores a block
15
+ res = {}
16
+ value.each { |k, v| res[k] = to_h_with_defaults(v) }
17
+ res
18
+ else
19
+ value
20
+ end
21
+ end
22
+
4
23
  refine Array do
5
24
  def snag(&block)
6
25
  find(&block)&.tap { |x| delete(x) }
@@ -45,8 +64,7 @@ module WebMock
45
64
  if expected_value.is_a?(Hash)
46
65
  matches ||= actual_value.match?(**expected_value)
47
66
  else
48
- matches ||= expected_value === actual_value.to_h
49
- # matches ||= expected_value === actual_value.normalized_hash
67
+ matches ||= expected_value === Refinements.to_h_with_defaults(actual_value)
50
68
  end
51
69
  end
52
70
 
@@ -1,5 +1,5 @@
1
1
  module WebMock
2
2
  module Twirp
3
- VERSION = "0.6.0"
3
+ VERSION = "0.6.1"
4
4
  end
5
5
  end
@@ -1,5 +1,4 @@
1
1
  require_relative "lib/webmock/twirp/version"
2
- package = WebMock::Twirp
3
2
 
4
3
  Gem::Specification.new do |s|
5
4
  s.authors = ["Daniel Pepper"]
@@ -7,17 +6,18 @@ Gem::Specification.new do |s|
7
6
  s.files = `git ls-files * ':!:spec'`.split("\n")
8
7
  s.homepage = "https://github.com/dpep/webmock-twirp"
9
8
  s.license = "MIT"
10
- s.name = File.basename(__FILE__).split(".")[0]
11
- s.summary = package.to_s
12
- s.version = package.const_get "VERSION"
9
+ s.name = "webmock-twirp"
10
+ s.summary = "WebMock::Twirp"
11
+ s.version = WebMock::Twirp::VERSION
13
12
 
14
- s.required_ruby_version = ">= 3"
13
+ s.required_ruby_version = ">= 3.2"
15
14
 
16
15
  s.add_dependency "webmock", ">= 3"
17
16
  s.add_dependency "twirp", ">= 1"
18
17
 
19
18
  s.add_development_dependency "debug"
20
19
  s.add_development_dependency "rack"
20
+ s.add_development_dependency "rake"
21
21
  s.add_development_dependency "rspec"
22
22
  s.add_development_dependency "simplecov"
23
23
  s.add_development_dependency "webrick"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webmock-twirp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Pepper
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-02-11 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: webmock
@@ -65,6 +65,20 @@ dependencies:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rake
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
68
82
  - !ruby/object:Gem::Dependency
69
83
  name: rspec
70
84
  requirement: !ruby/object:Gem::Requirement
@@ -117,6 +131,8 @@ files:
117
131
  - Gemfile.lock
118
132
  - LICENSE.txt
119
133
  - README.md
134
+ - gemfiles/protobuf_3.gemfile
135
+ - gemfiles/protobuf_3.gemfile.lock
120
136
  - lib/webmock-twirp.rb
121
137
  - lib/webmock/twirp.rb
122
138
  - lib/webmock/twirp/error.rb
@@ -142,14 +158,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
142
158
  requirements:
143
159
  - - ">="
144
160
  - !ruby/object:Gem::Version
145
- version: '3'
161
+ version: '3.2'
146
162
  required_rubygems_version: !ruby/object:Gem::Requirement
147
163
  requirements:
148
164
  - - ">="
149
165
  - !ruby/object:Gem::Version
150
166
  version: '0'
151
167
  requirements: []
152
- rubygems_version: 3.6.3
168
+ rubygems_version: 3.6.9
153
169
  specification_version: 4
154
170
  summary: WebMock::Twirp
155
171
  test_files: []