rspec-parameterized-core 1.0.1 → 2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/lib/rspec/parameterized/core/composite_parser.rb +75 -0
- data/lib/rspec/parameterized/core/errors.rb +9 -0
- data/lib/rspec/parameterized/core/lazy_arg.rb +2 -2
- data/lib/rspec/parameterized/core/version.rb +1 -1
- data/lib/rspec/parameterized/core.rb +5 -8
- data/rspec-parameterized-core.gemspec +8 -2
- metadata +44 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 533287240763772bdb4bce2c18611e6ae33ea580ef36fc1344f77d7d25993650
|
4
|
+
data.tar.gz: 400d4aff05dcf41c042455a8df97e3dd3cc1391a6efa88056dc52f95b25b4aa4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3a09f8853bbb5b038510976cbca380a762bee57491eaa9722ca9cab31015c2426f277a7238d2cd0efba6493d69fc7d298ea17fc85da255fcdd324a3b7301aab
|
7
|
+
data.tar.gz: 92c79e269e753b5f2d971a7ece2f2878a8a0b7b86c4c8de6455ed63387a79162087186358c92c21b04515df1fb994d23de5b1a23f3385c096226662246b09fbf
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
## [Unreleased]
|
2
|
-
[Full Changelog](https://github.com/rspec-parameterized/rspec-parameterized-core/compare/
|
2
|
+
[Full Changelog](https://github.com/rspec-parameterized/rspec-parameterized-core/compare/v2.0.0...main)
|
3
|
+
|
4
|
+
## [2.0.0](https://github.com/rspec-parameterized/rspec-parameterized-core/releases/tag/v2.0.0) - 2025-05-02
|
5
|
+
[Full Changelog](https://github.com/rspec-parameterized/rspec-parameterized-core/compare/v1.0.1...v2.0.0)
|
6
|
+
|
7
|
+
- Requires Ruby 2.7+
|
8
|
+
- https://github.com/rspec-parameterized/rspec-parameterized-core/pull/19
|
9
|
+
- Use Prism gem instead of Parser gem when Ruby 3.4+
|
10
|
+
- https://github.com/rspec-parameterized/rspec-parameterized-core/issues/17
|
11
|
+
- https://github.com/rspec-parameterized/rspec-parameterized-core/pull/18
|
3
12
|
|
4
13
|
## [1.0.1] - 2024-05-04
|
5
14
|
[Full Changelog](https://github.com/rspec-parameterized/rspec-parameterized-core/compare/v1.0.0...v1.0.1)
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module RSpec
|
2
|
+
module Parameterized
|
3
|
+
module Core
|
4
|
+
# Proxy class for parser and prism
|
5
|
+
module CompositeParser
|
6
|
+
# @param obj [Object]
|
7
|
+
# @return [String]
|
8
|
+
# @raise [RSpec::Parameterized::Core::ParserSyntaxError]
|
9
|
+
def self.to_raw_source(obj)
|
10
|
+
return to_raw_source_with_prism(obj) if use_prism?
|
11
|
+
|
12
|
+
to_raw_source_with_parser(obj)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Whether use parser or prism
|
16
|
+
#
|
17
|
+
# @return [true] Use prism
|
18
|
+
# @return [false] Use parser
|
19
|
+
def self.use_prism?
|
20
|
+
Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0")
|
21
|
+
end
|
22
|
+
|
23
|
+
# @param obj [Object]
|
24
|
+
# @return [String]
|
25
|
+
# @raise [RSpec::Parameterized::Core::ParserSyntaxError]
|
26
|
+
def self.to_raw_source_with_parser(obj)
|
27
|
+
obj.is_a?(Proc) ? obj.to_raw_source : obj.inspect
|
28
|
+
rescue Parser::SyntaxError => e
|
29
|
+
raise ParserSyntaxError
|
30
|
+
end
|
31
|
+
private_class_method :to_raw_source_with_parser
|
32
|
+
|
33
|
+
# @param obj [Object]
|
34
|
+
# @return [String]
|
35
|
+
def self.to_raw_source_with_prism(obj)
|
36
|
+
return obj.inspect unless obj.is_a?(Proc)
|
37
|
+
|
38
|
+
filename, linenum = obj.source_location
|
39
|
+
ast = parse_with_prism(filename, linenum)
|
40
|
+
|
41
|
+
return "" unless ast
|
42
|
+
|
43
|
+
ast.source.source.strip
|
44
|
+
end
|
45
|
+
private_class_method :to_raw_source_with_prism
|
46
|
+
|
47
|
+
# @param filename [String]
|
48
|
+
# @param linenum [Integer]
|
49
|
+
#
|
50
|
+
# @return [Prism::ParseResult,nil]
|
51
|
+
def self.parse_with_prism(filename, linenum)
|
52
|
+
buf = []
|
53
|
+
File.open(filename, "rb").each_with_index do |line, index|
|
54
|
+
next if index < linenum - 1
|
55
|
+
buf << line
|
56
|
+
|
57
|
+
ret = Prism.parse(buf.join)
|
58
|
+
return ret if ret.success?
|
59
|
+
end
|
60
|
+
|
61
|
+
nil
|
62
|
+
end
|
63
|
+
private_class_method :parse_with_prism
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
if RSpec::Parameterized::Core::CompositeParser.use_prism?
|
70
|
+
require 'prism'
|
71
|
+
else
|
72
|
+
require 'parser'
|
73
|
+
require 'unparser'
|
74
|
+
require 'proc_to_ast'
|
75
|
+
end
|
@@ -1,9 +1,8 @@
|
|
1
1
|
require "rspec/parameterized/core/version"
|
2
|
-
require 'parser'
|
3
|
-
require 'unparser'
|
4
|
-
require 'proc_to_ast'
|
5
2
|
require 'rspec/parameterized/core/helper_methods'
|
6
3
|
require 'rspec/parameterized/core/example_helper_methods'
|
4
|
+
require 'rspec/parameterized/core/errors'
|
5
|
+
require 'rspec/parameterized/core/composite_parser'
|
7
6
|
|
8
7
|
module RSpec
|
9
8
|
module Parameterized
|
@@ -143,11 +142,9 @@ module RSpec
|
|
143
142
|
end
|
144
143
|
|
145
144
|
def params_inspect(obj)
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
return obj.inspect
|
150
|
-
end
|
145
|
+
RSpec::Parameterized::Core::CompositeParser.to_raw_source(obj)
|
146
|
+
rescue ParserSyntaxError
|
147
|
+
return obj.inspect
|
151
148
|
end
|
152
149
|
|
153
150
|
def set_verbose_parameters(&block)
|
@@ -14,7 +14,7 @@ I was inspired by [udzura's mock](https://gist.github.com/1881139).}
|
|
14
14
|
|
15
15
|
spec.homepage = "https://github.com/rspec-parameterized/rspec-parameterized-core"
|
16
16
|
spec.license = "MIT"
|
17
|
-
spec.required_ruby_version = ">= 2.
|
17
|
+
spec.required_ruby_version = ">= 2.7.0"
|
18
18
|
|
19
19
|
spec.metadata["homepage_uri"] = spec.homepage
|
20
20
|
spec.metadata["source_code_uri"] = spec.homepage
|
@@ -32,12 +32,18 @@ I was inspired by [udzura's mock](https://gist.github.com/1881139).}
|
|
32
32
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
33
33
|
spec.require_paths = ["lib"]
|
34
34
|
|
35
|
+
spec.add_dependency "rspec", ">= 2.13", "< 4"
|
36
|
+
|
37
|
+
# parser dependencies
|
35
38
|
spec.add_dependency "parser"
|
36
39
|
spec.add_dependency "proc_to_ast", ">= 0.2.0"
|
37
|
-
spec.add_dependency "rspec", ">= 2.13", "< 4"
|
38
40
|
spec.add_dependency "unparser"
|
39
41
|
|
42
|
+
# prism dependencies
|
43
|
+
spec.add_dependency "prism"
|
44
|
+
|
40
45
|
spec.add_development_dependency "rake", ">= 12.0.0"
|
46
|
+
spec.add_development_dependency "rspec-its"
|
41
47
|
|
42
48
|
# For more information and examples about making a new gem, check out our
|
43
49
|
# guide at: https://bundler.io/guides/creating_gem.html
|
metadata
CHANGED
@@ -1,17 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-parameterized-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sue445
|
8
8
|
- tomykaira
|
9
9
|
- joker1007
|
10
|
-
autorequire:
|
11
10
|
bindir: exe
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2025-05-02 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '2.13'
|
21
|
+
- - "<"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '4'
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '2.13'
|
31
|
+
- - "<"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4'
|
15
34
|
- !ruby/object:Gem::Dependency
|
16
35
|
name: parser
|
17
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -41,27 +60,21 @@ dependencies:
|
|
41
60
|
- !ruby/object:Gem::Version
|
42
61
|
version: 0.2.0
|
43
62
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
63
|
+
name: unparser
|
45
64
|
requirement: !ruby/object:Gem::Requirement
|
46
65
|
requirements:
|
47
66
|
- - ">="
|
48
67
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
50
|
-
- - "<"
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: '4'
|
68
|
+
version: '0'
|
53
69
|
type: :runtime
|
54
70
|
prerelease: false
|
55
71
|
version_requirements: !ruby/object:Gem::Requirement
|
56
72
|
requirements:
|
57
73
|
- - ">="
|
58
74
|
- !ruby/object:Gem::Version
|
59
|
-
version: '
|
60
|
-
- - "<"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '4'
|
75
|
+
version: '0'
|
63
76
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
77
|
+
name: prism
|
65
78
|
requirement: !ruby/object:Gem::Requirement
|
66
79
|
requirements:
|
67
80
|
- - ">="
|
@@ -88,6 +101,20 @@ dependencies:
|
|
88
101
|
- - ">="
|
89
102
|
- !ruby/object:Gem::Version
|
90
103
|
version: 12.0.0
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rspec-its
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
type: :development
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
91
118
|
description: RSpec::Parameterized supports simple parameterized test syntax in rspec.
|
92
119
|
email:
|
93
120
|
- sue445@sue445.net
|
@@ -105,6 +132,8 @@ files:
|
|
105
132
|
- lib/rspec-parameterized-core.rb
|
106
133
|
- lib/rspec/parameterized/core.rb
|
107
134
|
- lib/rspec/parameterized/core/arg.rb
|
135
|
+
- lib/rspec/parameterized/core/composite_parser.rb
|
136
|
+
- lib/rspec/parameterized/core/errors.rb
|
108
137
|
- lib/rspec/parameterized/core/example_helper_methods.rb
|
109
138
|
- lib/rspec/parameterized/core/helper_methods.rb
|
110
139
|
- lib/rspec/parameterized/core/lazy_arg.rb
|
@@ -120,7 +149,6 @@ metadata:
|
|
120
149
|
source_code_uri: https://github.com/rspec-parameterized/rspec-parameterized-core
|
121
150
|
changelog_uri: https://github.com/rspec-parameterized/rspec-parameterized-core/blob/main/CHANGELOG.md
|
122
151
|
rubygems_mfa_required: 'true'
|
123
|
-
post_install_message:
|
124
152
|
rdoc_options: []
|
125
153
|
require_paths:
|
126
154
|
- lib
|
@@ -128,15 +156,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
156
|
requirements:
|
129
157
|
- - ">="
|
130
158
|
- !ruby/object:Gem::Version
|
131
|
-
version: 2.
|
159
|
+
version: 2.7.0
|
132
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
161
|
requirements:
|
134
162
|
- - ">="
|
135
163
|
- !ruby/object:Gem::Version
|
136
164
|
version: '0'
|
137
165
|
requirements: []
|
138
|
-
rubygems_version: 3.
|
139
|
-
signing_key:
|
166
|
+
rubygems_version: 3.6.2
|
140
167
|
specification_version: 4
|
141
168
|
summary: RSpec::Parameterized supports simple parameterized test syntax in rspec.
|
142
169
|
I was inspired by [udzura's mock](https://gist.github.com/1881139).
|