rspock 2.5.0 → 3.0.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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspock
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Philippe Duchesne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-03-01 00:00:00.000000000 Z
11
+ date: 2026-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '2.0'
117
+ version: '3.0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '2.0'
124
+ version: '3.0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: minitest
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -150,34 +150,6 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '1.0'
153
- - !ruby/object:Gem::Dependency
154
- name: parser
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '3.0'
160
- type: :runtime
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '3.0'
167
- - !ruby/object:Gem::Dependency
168
- name: unparser
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0.6'
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0.6'
181
153
  description: Data-driven testing framework.
182
154
  email:
183
155
  - jpduchesne89@gmail.com
@@ -188,9 +160,11 @@ files:
188
160
  - ".claude/CLAUDE.md"
189
161
  - ".cursor/rules/base.mdc"
190
162
  - ".cursor/rules/best-practices.mdc"
163
+ - ".github/CODEOWNERS"
191
164
  - ".github/workflows/ci.yml"
192
165
  - ".github/workflows/release.yml"
193
166
  - ".gitignore"
167
+ - ".ruby-version"
194
168
  - CHANGELOG.md
195
169
  - CODE_OF_CONDUCT.md
196
170
  - Gemfile
@@ -202,15 +176,13 @@ files:
202
176
  - bin/setup
203
177
  - block_graph
204
178
  - block_graph.png
179
+ - dependencies.rb
180
+ - dev.yml
205
181
  - lib/Rakefile
206
- - lib/generators/rspock/install_generator.rb
207
- - lib/generators/templates/rspock_initializer.rb
208
- - lib/minitest/rspock_plugin.rb
209
182
  - lib/rspock.rb
210
183
  - lib/rspock/ast/header_nodes_transformation.rb
211
184
  - lib/rspock/ast/interaction_to_block_identity_assertion_transformation.rb
212
185
  - lib/rspock/ast/interaction_to_mocha_mock_transformation.rb
213
- - lib/rspock/ast/method_call_to_lvar_transformation.rb
214
186
  - lib/rspock/ast/node.rb
215
187
  - lib/rspock/ast/parser/block.rb
216
188
  - lib/rspock/ast/parser/cleanup_block.rb
@@ -227,15 +199,14 @@ files:
227
199
  - lib/rspock/ast/test_method_dstr_transformation.rb
228
200
  - lib/rspock/ast/test_method_transformation.rb
229
201
  - lib/rspock/ast/transformation.rb
230
- - lib/rspock/backtrace_filter.rb
231
202
  - lib/rspock/declarative.rb
232
203
  - lib/rspock/helpers/block_capture.rb
233
- - lib/rspock/minitest/backtrace_filter.rb
234
204
  - lib/rspock/railtie.rb
235
205
  - lib/rspock/tasks/rspock.rake
236
206
  - lib/rspock/tasks/truth_table.rb
237
207
  - lib/rspock/version.rb
238
208
  - rspock.gemspec
209
+ - skills/rspock/SKILL.md
239
210
  homepage: https://github.com/rspockframework/rspock
240
211
  licenses:
241
212
  - MIT
@@ -248,7 +219,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
248
219
  requirements:
249
220
  - - ">="
250
221
  - !ruby/object:Gem::Version
251
- version: '3.2'
222
+ version: '3.3'
252
223
  required_rubygems_version: !ruby/object:Gem::Requirement
253
224
  requirements:
254
225
  - - ">="
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # 's' in Rspock is lowercase on purpose, so generator name is +rspock+ instead of +r_spock+
4
- module Rspock
5
- module Generators
6
- class InstallGenerator < Rails::Generators::Base
7
- source_root File.expand_path("../../templates", __FILE__)
8
- desc "Creates RSpock initializer for your application"
9
-
10
- def copy_initializer
11
- template "rspock_initializer.rb", "config/initializers/rspock.rb"
12
-
13
- puts "Install complete!"
14
- end
15
- end
16
- end
17
- end
@@ -1,2 +0,0 @@
1
- # frozen_string_literal: true
2
- Rails.backtrace_cleaner.add_filter { |line| RSpock::BacktraceFilter.new.filter_string(line) }
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'rspock/minitest/backtrace_filter'
3
-
4
- module Minitest
5
- def self.plugin_rspock_init(_options)
6
- unless defined?(Rails)
7
- Minitest.backtrace_filter = RSpock::Minitest::BacktraceFilter.new
8
- end
9
- end
10
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'ast_transform/abstract_transformation'
3
-
4
- module RSpock
5
- module AST
6
- class MethodCallToLVarTransformation < ASTTransform::AbstractTransformation
7
- def initialize(*method_symbols)
8
- @method_call_nodes = method_symbols.map { |method_sym|
9
- s(:send, nil, method_sym)
10
- }
11
- end
12
-
13
- def on_send(node)
14
- return super unless method_call_node?(node)
15
-
16
- node.updated(:lvar, [node.children[1]])
17
- end
18
-
19
- def method_call_node?(node)
20
- @method_call_nodes.include?(node)
21
- end
22
- end
23
- end
24
- end
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'ast_transform/source_map'
3
-
4
- module RSpock
5
- class BacktraceFilter
6
- # Constructs a new BacktraceFilter instance.
7
- #
8
- # @param source_map_provider [::ASTTransform::SourceMap] The source map provider to be used.
9
- def initialize(source_map_provider: ::ASTTransform::SourceMap)
10
- @source_map_provider = source_map_provider
11
- end
12
-
13
- # Filters the backtrace of the given +exception+ and applies the filtered backtrace to the exception.
14
- #
15
- # @param exception [Exception] The exception to be filtered.
16
- #
17
- # @return [void]
18
- def filter_exception(exception)
19
- exception.set_backtrace(source_mapped_backtrace(exception))
20
- end
21
-
22
- # Filters the given location.
23
- #
24
- # @param location [String] A location string.
25
- #
26
- # @return [String] The filtered location.
27
- def filter_string(location)
28
- file_path, lineno = location.match(/([\S]+):(\d+)/).captures
29
- lineno = lineno.to_i
30
- absolute_path = File.expand_path(file_path)
31
-
32
- source_map = @source_map_provider.for_file_path(absolute_path)
33
- return location unless source_map
34
-
35
- line_number = source_map.line(lineno) || '?'
36
- location.sub("#{file_path}:#{lineno}", "#{source_map.source_file_path}:#{line_number}")
37
- end
38
-
39
- private
40
-
41
- def source_mapped_backtrace(e)
42
- e.backtrace_locations&.map(&method(:location_builder))
43
- end
44
-
45
- def location_builder(location)
46
- source_map = @source_map_provider.for_file_path(location.absolute_path || location.path)
47
- return location.to_s unless source_map
48
-
49
- line_number = source_map.line(location.lineno) || '?'
50
- "#{source_map.source_file_path}:#{line_number}"
51
- end
52
- end
53
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'rspock/backtrace_filter'
3
-
4
- module RSpock
5
- module Minitest
6
- class BacktraceFilter
7
- def initialize
8
- @backtrace_filter = RSpock::BacktraceFilter.new
9
- end
10
-
11
- def filter(backtrace)
12
- backtrace.map { |line| @backtrace_filter.filter_string(line) }
13
- end
14
- end
15
- end
16
- end