webmock-twirp 0.6.0 → 0.6.2

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: ed732ed69f67c95c98dc20b493dfbc245a74ceb6c78e2380143ddff10217d57b
4
+ data.tar.gz: 976107bf4aedebdfc5731f5478883b84f0f8c3a2f5883696e2063a41364ae153
5
5
  SHA512:
6
- metadata.gz: 59acbce84012d937a66f6fe601a2ec0b49f9a56c384113c35371362b603907f201dea384f54e343e8759b9b397c732f8c03e185d2a72ab88f7bfb33ba5e3fa4b
7
- data.tar.gz: 536a0a49c744b98d3973e56c18e02ec0e968f14f71639ee4164808b6a07f545a6df416ee1b7e36b11bf877e8febad5163b634fe10a4d7fc3bfe9ddf6c1624f52
6
+ metadata.gz: 3956dac3ed361e4900b32396e0976b9b4e8e3fef29181805a6b7659c5f5d5deb5cf1fe873696b103ab3dd71d92fe406bca61bcd7338647c6cd7f25a214186b50
7
+ data.tar.gz: 61b1c56d28ad599dd70a35ef060a39a80fe65b9e443dabbcbf4ba162f0afee131e36d3dc1765505577ac3dcad12a37bb4c4a13c15c7d6beae4e466b1e36abb48
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ### 0.6.2 (2026-11-09)
2
+ - Requires Ruby 3.3 or newer.
3
+
4
+ ### 0.6.1 (2026-11-08)
5
+ - Requires Ruby 3.2 or newer.
6
+ - Fix nested matchers like `with(date: include(year: 0))` not matching default-valued fields on google-protobuf 4.
7
+
1
8
  ### 0.6.0 (2025-02-11)
2
9
  - rspec matcher support
3
10
  - debug gem
@@ -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.2"
4
4
  end
5
5
  end
@@ -1,24 +1,24 @@
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"]
6
5
  s.description = "Twirp support for WebMock"
7
- s.files = `git ls-files * ':!:spec'`.split("\n")
6
+ s.files = `git ls-files * ':!:spec' ':!:gemfiles' ':!:Gemfile*' ':!:service.rb'`.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.3"
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
- s.add_development_dependency "simplecov"
22
+ s.add_development_dependency "simplecov", ">= 1"
23
23
  s.add_development_dependency "webrick"
24
24
  end
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.2
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
@@ -66,7 +66,7 @@ dependencies:
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  - !ruby/object:Gem::Dependency
69
- name: rspec
69
+ name: rake
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
@@ -80,7 +80,7 @@ dependencies:
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  - !ruby/object:Gem::Dependency
83
- name: simplecov
83
+ name: rspec
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ">="
@@ -93,6 +93,20 @@ dependencies:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: simplecov
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '1'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '1'
96
110
  - !ruby/object:Gem::Dependency
97
111
  name: webrick
98
112
  requirement: !ruby/object:Gem::Requirement
@@ -113,8 +127,6 @@ extensions: []
113
127
  extra_rdoc_files: []
114
128
  files:
115
129
  - CHANGELOG.md
116
- - Gemfile
117
- - Gemfile.lock
118
130
  - LICENSE.txt
119
131
  - README.md
120
132
  - lib/webmock-twirp.rb
@@ -129,7 +141,6 @@ files:
129
141
  - lib/webmock/twirp/request_stub.rb
130
142
  - lib/webmock/twirp/stub_request_snippet.rb
131
143
  - lib/webmock/twirp/version.rb
132
- - service.rb
133
144
  - webmock-twirp.gemspec
134
145
  homepage: https://github.com/dpep/webmock-twirp
135
146
  licenses:
@@ -142,14 +153,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
142
153
  requirements:
143
154
  - - ">="
144
155
  - !ruby/object:Gem::Version
145
- version: '3'
156
+ version: '3.3'
146
157
  required_rubygems_version: !ruby/object:Gem::Requirement
147
158
  requirements:
148
159
  - - ">="
149
160
  - !ruby/object:Gem::Version
150
161
  version: '0'
151
162
  requirements: []
152
- rubygems_version: 3.6.3
163
+ rubygems_version: 3.6.9
153
164
  specification_version: 4
154
165
  summary: WebMock::Twirp
155
166
  test_files: []
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
data/Gemfile.lock DELETED
@@ -1,96 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- webmock-twirp (0.6.0)
5
- twirp (>= 1)
6
- webmock (>= 3)
7
-
8
- GEM
9
- remote: https://rubygems.org/
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)
15
- bigdecimal
16
- rexml
17
- date (3.4.1)
18
- debug (1.10.0)
19
- irb (~> 1.10)
20
- reline (>= 0.3.8)
21
- diff-lcs (1.5.1)
22
- docile (1.4.1)
23
- faraday (2.12.1)
24
- faraday-net_http (>= 2.0, < 3.5)
25
- json
26
- 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)
33
- pp (>= 0.6.0)
34
- rdoc (>= 4.0.0)
35
- 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
- prettyprint
42
- prettyprint (0.2.0)
43
- psych (5.2.3)
44
- date
45
- stringio
46
- public_suffix (6.0.1)
47
- rack (3.1.9)
48
- rdoc (6.12.0)
49
- psych (>= 4.0.0)
50
- reline (0.6.0)
51
- io-console (~> 0.5)
52
- rexml (3.4.0)
53
- rspec (3.13.0)
54
- rspec-core (~> 3.13.0)
55
- rspec-expectations (~> 3.13.0)
56
- rspec-mocks (~> 3.13.0)
57
- rspec-core (3.13.2)
58
- rspec-support (~> 3.13.0)
59
- rspec-expectations (3.13.3)
60
- diff-lcs (>= 1.2.0, < 2.0)
61
- rspec-support (~> 3.13.0)
62
- rspec-mocks (3.13.2)
63
- diff-lcs (>= 1.2.0, < 2.0)
64
- 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
- faraday (< 3)
75
- google-protobuf (>= 3.25, < 5.a)
76
- rack (>= 2.2.3)
77
- uri (1.0.2)
78
- webmock (3.25.0)
79
- addressable (>= 2.8.0)
80
- crack (>= 0.3.2)
81
- hashdiff (>= 0.4.0, < 2.0.0)
82
- webrick (1.9.1)
83
-
84
- PLATFORMS
85
- ruby
86
-
87
- DEPENDENCIES
88
- debug
89
- rack
90
- rspec
91
- simplecov
92
- webmock-twirp!
93
- webrick
94
-
95
- BUNDLED WITH
96
- 2.4.20
data/service.rb DELETED
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "google/protobuf"
4
- require "rack"
5
- require "twirp"
6
- require "webrick"
7
- Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
8
-
9
- server = WEBrick::HTTPServer.new(Port: 3000)
10
-
11
- handler = EchoHandler.new
12
- service = EchoService.new(handler)
13
- path_prefix = "/twirp/" + service.full_name
14
- server.mount path_prefix, Rack::Handler::WEBrick, service
15
-
16
- # handler = ComplexHandler.new
17
- # service = ComplexService.new(handler)
18
- # path_prefix = "/twirp/" + service.full_name
19
- # server.mount path_prefix, Rack::Handler::WEBrick, service
20
-
21
- server.start
22
-
23
- # client = EchoClient.new("http://localhost:3000/twirp")
24
- # client = ComplexClient.new("http://localhost:3000/twirp")
25
- # resp = client.echo(msg: "World")
26
- # puts resp.data