rspec-parameterized 0.5.3 → 1.0.0.rc1
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 -0
- data/README.md +10 -12
- data/UPGRADING.md +16 -0
- data/lib/rspec/parameterized/version.rb +1 -1
- data/lib/rspec/parameterized.rb +2 -172
- data/rspec-parameterized.gemspec +3 -5
- metadata +13 -69
- data/gemfiles/rspec-head.gemfile +0 -5
- data/gemfiles/rspec3.4.gemfile +0 -5
- data/lib/rspec/parameterized/arg.rb +0 -7
- data/lib/rspec/parameterized/example_helper_methods.rb +0 -19
- data/lib/rspec/parameterized/helper_methods.rb +0 -20
- data/lib/rspec/parameterized/lazy_arg.rb +0 -19
- data/lib/rspec/parameterized/ref_arg.rb +0 -19
- data/lib/rspec/parameterized/table.rb +0 -49
- data/lib/rspec/parameterized/table_syntax.rb +0 -77
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0297d4fdb64af8cc3a01fb4e9b87bb13089382502e0bd9b166b4d0f809fa39e
|
4
|
+
data.tar.gz: b6d184b0ed068b1bc009bcf84a8735eba6a36cea053df5f9049518f9fc7ed0b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e25ca54ba93879ebb9aa84651c843807370b1084aadc07e2ae7e2fc72e054ba2ef81a78e12b42fca4ece6ad5302e02c6e11f198ae046cc740306bba6111d7ffc
|
7
|
+
data.tar.gz: c763de06b61b28093c9c5d8a09a16abfe689a84ee80de035241099e54176d450465aaa409f4ba142c342157ad67c88a5ed95563e5fdb19e782c91925f4c516b0
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
## Unreleased
|
3
3
|
[Full Changelog](https://github.com/tomykaira/rspec-parameterized/compare/v0.5.3...master)
|
4
4
|
|
5
|
+
- Split gems
|
6
|
+
- https://github.com/tomykaira/rspec-parameterized/issues/82
|
7
|
+
- https://github.com/tomykaira/rspec-parameterized/pull/83
|
8
|
+
|
9
|
+
See also
|
10
|
+
|
11
|
+
- [Upgrading Guide](UPGRADING.md#v10)
|
12
|
+
- https://github.com/rspec-parameterized/rspec-parameterized-table_syntax/blob/main/CHANGELOG.md#100---2022-12-31
|
13
|
+
- https://github.com/rspec-parameterized/rspec-parameterized-core/blob/main/CHANGELOG.md#100---2022-12-31
|
14
|
+
|
5
15
|
## [v0.5.3](https://github.com/tomykaira/rspec-parameterized/tree/v0.5.3) (2022-12-29)
|
6
16
|
[Full Changelog](https://github.com/tomykaira/rspec-parameterized/compare/v0.5.2...v0.5.3)
|
7
17
|
|
data/README.md
CHANGED
@@ -182,18 +182,11 @@ I was inspired by [udzura's mock](https://gist.github.com/1881139).
|
|
182
182
|
Ruby-2.6.0 or later.
|
183
183
|
|
184
184
|
## Installation
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
And then execute:
|
191
|
-
|
192
|
-
$ bundle
|
193
|
-
|
194
|
-
Or install it yourself as:
|
195
|
-
|
196
|
-
$ gem install rspec-parameterized
|
185
|
+
```ruby
|
186
|
+
group :test do
|
187
|
+
gem "rspec-parameterized", ">= 1.0.0"
|
188
|
+
end
|
189
|
+
```
|
197
190
|
|
198
191
|
## Usage
|
199
192
|
|
@@ -212,3 +205,8 @@ Arguments given to `with_them` is directly passed to `describe`. You can specif
|
|
212
205
|
3. Commit your changes (`git commit -am 'Added some feature'`)
|
213
206
|
4. Push to the branch (`git push origin my-new-feature`)
|
214
207
|
5. Create new Pull Request
|
208
|
+
|
209
|
+
## Also see
|
210
|
+
|
211
|
+
* https://github.com/rspec-parameterized/rspec-parameterized-table_syntax
|
212
|
+
* https://github.com/rspec-parameterized/rspec-parameterized-core
|
data/UPGRADING.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# v1.0
|
2
|
+
Moved all implements to https://github.com/rspec-parameterized/rspec-parameterized-core and https://github.com/rspec-parameterized/rspec-parameterized-table_syntax
|
3
|
+
|
4
|
+
For v0.x users, there is basically no need to do anything other than `bundle update`.
|
5
|
+
|
6
|
+
If you are not using `RSpec::Parameterized::TableSyntax`, you can write `rspec-parameterized-core` instead of `rspec-parameterized` in your `Gemfile` to reduce the dependency.
|
7
|
+
|
8
|
+
e.g.
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
# Before
|
12
|
+
gem "rspec-parameterized"
|
13
|
+
|
14
|
+
# After
|
15
|
+
gem "rspec-parameterized-core"
|
16
|
+
```
|
data/lib/rspec/parameterized.rb
CHANGED
@@ -1,178 +1,8 @@
|
|
1
1
|
require "rspec/parameterized/version"
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require 'proc_to_ast'
|
5
|
-
require 'rspec/parameterized/helper_methods'
|
6
|
-
require 'rspec/parameterized/example_helper_methods'
|
2
|
+
require "rspec/parameterized/core"
|
3
|
+
require "rspec/parameterized/table_syntax"
|
7
4
|
|
8
5
|
module RSpec
|
9
6
|
module Parameterized
|
10
|
-
autoload :TableSyntax, 'rspec/parameterized/table_syntax'
|
11
|
-
|
12
|
-
module ExampleGroupMethods
|
13
|
-
# capsulize parameter attributes
|
14
|
-
class Parameter
|
15
|
-
attr_reader :arg_names, :block
|
16
|
-
|
17
|
-
def initialize(arg_names, &block)
|
18
|
-
@arg_names, @block = arg_names, block
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# Set parameters to be bound in specs under this example group.
|
23
|
-
#
|
24
|
-
# ## Example1
|
25
|
-
#
|
26
|
-
# where(:a, :b, :answer) do
|
27
|
-
# [
|
28
|
-
# [1 , 2 , 3],
|
29
|
-
# [5 , 8 , 13],
|
30
|
-
# [0 , 0 , 0]
|
31
|
-
# ]
|
32
|
-
# end
|
33
|
-
#
|
34
|
-
# ## Example2
|
35
|
-
# using RSpec::Parameterized::TableSyntax
|
36
|
-
# where(:a, :b, :answer) do
|
37
|
-
# 1 | 2 | 3 >
|
38
|
-
# 5 | 8 | 13 >
|
39
|
-
# 0 | 0 | 0
|
40
|
-
# end
|
41
|
-
#
|
42
|
-
def where(*args, &b)
|
43
|
-
|
44
|
-
if args.size == 1 && args[0].instance_of?(Hash)
|
45
|
-
naming_func = args.first.delete(:case_names)
|
46
|
-
params = args[0]
|
47
|
-
first, *rest = params.values
|
48
|
-
arg_names = params.keys
|
49
|
-
arg_values = first.product(*rest)
|
50
|
-
|
51
|
-
if naming_func && naming_func.respond_to?(:call)
|
52
|
-
arg_names << :case_name
|
53
|
-
arg_values.map! { |row| row << naming_func.call(*row) }
|
54
|
-
end
|
55
|
-
|
56
|
-
set_parameters(arg_names) {
|
57
|
-
arg_values
|
58
|
-
}
|
59
|
-
elsif args.size == 0
|
60
|
-
set_verbose_parameters(&b)
|
61
|
-
else
|
62
|
-
set_parameters(args, &b)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
# Use parameters to execute the block.
|
67
|
-
# The given block is converted into +describe+s for each parameter set.
|
68
|
-
#
|
69
|
-
# ## Example
|
70
|
-
# with_them do
|
71
|
-
# it "should do additions" do
|
72
|
-
# (a + b).should == answer
|
73
|
-
# end
|
74
|
-
# end
|
75
|
-
#
|
76
|
-
def with_them(*args, &b)
|
77
|
-
opts = args.last.is_a?(Hash) ? args.pop : {}
|
78
|
-
opts[:caller] = caller unless opts[:caller]
|
79
|
-
args.push(opts)
|
80
|
-
@parameter ||= nil
|
81
|
-
|
82
|
-
if @parameter.nil?
|
83
|
-
@parameterized_pending_cases ||= []
|
84
|
-
@parameterized_pending_cases << [args, b]
|
85
|
-
else
|
86
|
-
define_cases(@parameter, *args, &b)
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
private
|
91
|
-
def set_parameters(arg_names, &b)
|
92
|
-
@parameter = Parameter.new(arg_names, &b)
|
93
|
-
@parameterized_pending_cases ||= []
|
94
|
-
|
95
|
-
@parameterized_pending_cases.each { |e|
|
96
|
-
define_cases(@parameter, *e[0], &e[1])
|
97
|
-
}
|
98
|
-
end
|
99
|
-
|
100
|
-
def define_cases(parameter, *args, &block)
|
101
|
-
instance = new # for evaluate let methods.
|
102
|
-
instance.extend HelperMethods
|
103
|
-
if defined?(self.superclass::LetDefinitions)
|
104
|
-
instance.extend self.superclass::LetDefinitions
|
105
|
-
end
|
106
|
-
|
107
|
-
extracted = instance.instance_eval(¶meter.block)
|
108
|
-
param_sets = extracted.is_a?(Array) ? extracted : extracted.to_params
|
109
|
-
|
110
|
-
# for only one parameters
|
111
|
-
param_sets = param_sets.map { |x| Array[x] } if !param_sets[0].is_a?(Array)
|
112
|
-
|
113
|
-
param_sets.each do |param_set|
|
114
|
-
pairs = [parameter.arg_names, param_set].transpose.to_h
|
115
|
-
pretty_params = pairs.has_key?(:case_name) ? pairs[:case_name] : pairs.map {|name, val| "#{name}: #{params_inspect(val)}"}.join(", ")
|
116
|
-
describe(pretty_params, *args) do
|
117
|
-
include ExampleHelperMethods
|
118
|
-
|
119
|
-
pairs.each do |name, val|
|
120
|
-
let(name) { recursive_apply(val) }
|
121
|
-
end
|
122
|
-
|
123
|
-
singleton_class.module_eval do
|
124
|
-
if respond_to?(:params)
|
125
|
-
warn "ExampleGroup.params method is overrided."
|
126
|
-
end
|
127
|
-
|
128
|
-
define_method(:params) do
|
129
|
-
pairs
|
130
|
-
end
|
131
|
-
|
132
|
-
if respond_to?(:all_params)
|
133
|
-
warn "ExampleGroup.all_params method is overrided."
|
134
|
-
end
|
135
|
-
|
136
|
-
define_method(:all_params) do
|
137
|
-
param_sets
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
module_eval(&block)
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
def params_inspect(obj)
|
147
|
-
begin
|
148
|
-
obj.is_a?(Proc) ? obj.to_raw_source : obj.inspect
|
149
|
-
rescue Parser::SyntaxError
|
150
|
-
return obj.inspect
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
def set_verbose_parameters(&block)
|
155
|
-
arguments_hash = yield
|
156
|
-
arg_names = arguments_hash.values.reduce(Set.new) { |memo, pairs| memo | pairs.keys }.to_a
|
157
|
-
arg_values = []
|
158
|
-
arguments_hash.each do |name, values_hash|
|
159
|
-
row = [name]
|
160
|
-
arg_names.each do |argument_name|
|
161
|
-
row << values_hash[argument_name]
|
162
|
-
end
|
163
|
-
arg_values << row
|
164
|
-
end
|
165
|
-
arg_names.unshift(:case_name)
|
166
|
-
set_parameters(arg_names) {
|
167
|
-
arg_values
|
168
|
-
}
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|
173
|
-
module Core
|
174
|
-
class ExampleGroup
|
175
|
-
extend ::RSpec::Parameterized::ExampleGroupMethods
|
176
|
-
end
|
177
7
|
end
|
178
8
|
end
|
data/rspec-parameterized.gemspec
CHANGED
@@ -11,11 +11,9 @@ I was inspired by [udzura's mock](https://gist.github.com/1881139).}
|
|
11
11
|
|
12
12
|
gem.metadata["rubygems_mfa_required"] = "true"
|
13
13
|
|
14
|
-
gem.add_dependency('rspec', '
|
15
|
-
gem.add_dependency('
|
16
|
-
|
17
|
-
gem.add_dependency('proc_to_ast')
|
18
|
-
gem.add_dependency('binding_of_caller')
|
14
|
+
gem.add_dependency('rspec-parameterized-core', '< 2')
|
15
|
+
gem.add_dependency('rspec-parameterized-table_syntax', '< 2')
|
16
|
+
|
19
17
|
gem.add_development_dependency('rake', '>= 12.0.0')
|
20
18
|
|
21
19
|
gem.files = `git ls-files`.split($\)
|
metadata
CHANGED
@@ -1,91 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-parameterized
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tomykaira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-12-
|
11
|
+
date: 2022-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: rspec
|
14
|
+
name: rspec-parameterized-core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.13'
|
20
17
|
- - "<"
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
19
|
+
version: '2'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.13'
|
30
24
|
- - "<"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: parser
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - ">="
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '0'
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0'
|
26
|
+
version: '2'
|
47
27
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
28
|
+
name: rspec-parameterized-table_syntax
|
49
29
|
requirement: !ruby/object:Gem::Requirement
|
50
30
|
requirements:
|
51
|
-
- - "
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '0'
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: proc_to_ast
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '0'
|
68
|
-
type: :runtime
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: binding_of_caller
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - ">="
|
31
|
+
- - "<"
|
80
32
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
33
|
+
version: '2'
|
82
34
|
type: :runtime
|
83
35
|
prerelease: false
|
84
36
|
version_requirements: !ruby/object:Gem::Requirement
|
85
37
|
requirements:
|
86
|
-
- - "
|
38
|
+
- - "<"
|
87
39
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
40
|
+
version: '2'
|
89
41
|
- !ruby/object:Gem::Dependency
|
90
42
|
name: rake
|
91
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,17 +67,9 @@ files:
|
|
115
67
|
- LICENSE
|
116
68
|
- README.md
|
117
69
|
- Rakefile
|
118
|
-
-
|
119
|
-
- gemfiles/rspec3.4.gemfile
|
70
|
+
- UPGRADING.md
|
120
71
|
- lib/rspec-parameterized.rb
|
121
72
|
- lib/rspec/parameterized.rb
|
122
|
-
- lib/rspec/parameterized/arg.rb
|
123
|
-
- lib/rspec/parameterized/example_helper_methods.rb
|
124
|
-
- lib/rspec/parameterized/helper_methods.rb
|
125
|
-
- lib/rspec/parameterized/lazy_arg.rb
|
126
|
-
- lib/rspec/parameterized/ref_arg.rb
|
127
|
-
- lib/rspec/parameterized/table.rb
|
128
|
-
- lib/rspec/parameterized/table_syntax.rb
|
129
73
|
- lib/rspec/parameterized/version.rb
|
130
74
|
- rspec-parameterized.gemspec
|
131
75
|
- spec/parametarized_spec.rb
|
@@ -145,9 +89,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
145
89
|
version: '0'
|
146
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
91
|
requirements:
|
148
|
-
- - "
|
92
|
+
- - ">"
|
149
93
|
- !ruby/object:Gem::Version
|
150
|
-
version:
|
94
|
+
version: 1.3.1
|
151
95
|
requirements: []
|
152
96
|
rubygems_version: 3.4.0.dev
|
153
97
|
signing_key:
|
data/gemfiles/rspec-head.gemfile
DELETED
data/gemfiles/rspec3.4.gemfile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
module RSpec
|
2
|
-
module Parameterized
|
3
|
-
module ExampleHelperMethods
|
4
|
-
def recursive_apply(val)
|
5
|
-
return val.apply(self) if HelperMethods.applicable?(val)
|
6
|
-
|
7
|
-
if val.is_a?(Array)
|
8
|
-
return val.map { |child_val| recursive_apply(child_val) }
|
9
|
-
end
|
10
|
-
|
11
|
-
if val.is_a?(Hash)
|
12
|
-
return val.map { |key, value| [recursive_apply(key), recursive_apply(value)] }.to_h
|
13
|
-
end
|
14
|
-
|
15
|
-
val
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'rspec/parameterized/ref_arg'
|
2
|
-
require 'rspec/parameterized/lazy_arg'
|
3
|
-
module RSpec
|
4
|
-
module Parameterized
|
5
|
-
module HelperMethods
|
6
|
-
def ref(symbol)
|
7
|
-
RefArg.new(symbol)
|
8
|
-
end
|
9
|
-
|
10
|
-
def lazy(&block)
|
11
|
-
LazyArg.new(&block)
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.applicable?(arg)
|
15
|
-
arg.is_a? Arg
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module RSpec
|
2
|
-
module Parameterized
|
3
|
-
class LazyArg < Arg
|
4
|
-
def initialize(&block)
|
5
|
-
@block = block
|
6
|
-
end
|
7
|
-
|
8
|
-
def apply(obj)
|
9
|
-
obj.instance_eval(&@block)
|
10
|
-
end
|
11
|
-
|
12
|
-
def inspect
|
13
|
-
"#{@block.to_raw_source}"
|
14
|
-
rescue Parser::SyntaxError
|
15
|
-
super.inspect
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'rspec/parameterized/arg'
|
2
|
-
module RSpec
|
3
|
-
module Parameterized
|
4
|
-
class RefArg < Arg
|
5
|
-
def initialize(symbol)
|
6
|
-
@symbol = symbol
|
7
|
-
end
|
8
|
-
|
9
|
-
def apply(obj)
|
10
|
-
obj.send(@symbol)
|
11
|
-
end
|
12
|
-
|
13
|
-
def inspect
|
14
|
-
"#{@symbol}"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
@@ -1,49 +0,0 @@
|
|
1
|
-
module RSpec
|
2
|
-
module Parameterized
|
3
|
-
class Table
|
4
|
-
attr_reader :last_row
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
@rows = []
|
8
|
-
@last_row = nil
|
9
|
-
end
|
10
|
-
|
11
|
-
def add_row(row)
|
12
|
-
unless @rows.find {|r| r.object_id == row.object_id}
|
13
|
-
@rows << row
|
14
|
-
@last_row = row
|
15
|
-
end
|
16
|
-
self
|
17
|
-
end
|
18
|
-
|
19
|
-
def add_param_to_last_row(param)
|
20
|
-
last_row.add_param(param)
|
21
|
-
self
|
22
|
-
end
|
23
|
-
alias :| :add_param_to_last_row
|
24
|
-
|
25
|
-
def to_a
|
26
|
-
@rows.map(&:to_a)
|
27
|
-
end
|
28
|
-
alias :to_params :to_a
|
29
|
-
|
30
|
-
class Row
|
31
|
-
def initialize(param)
|
32
|
-
@params = [param]
|
33
|
-
end
|
34
|
-
|
35
|
-
def add_param(param)
|
36
|
-
@params << param
|
37
|
-
end
|
38
|
-
|
39
|
-
def to_a
|
40
|
-
@params
|
41
|
-
end
|
42
|
-
|
43
|
-
def to_params
|
44
|
-
[@params]
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'rspec/parameterized/table'
|
2
|
-
require 'binding_of_caller'
|
3
|
-
|
4
|
-
module RSpec
|
5
|
-
module Parameterized
|
6
|
-
module TableSyntaxImplement
|
7
|
-
def |(other)
|
8
|
-
where_binding = binding.of_caller(1) # get where block binding
|
9
|
-
caller_instance = eval("self", where_binding) # get caller instance (ExampleGroup)
|
10
|
-
|
11
|
-
if caller_instance.instance_variable_defined?(:@__parameter_table)
|
12
|
-
table = caller_instance.instance_variable_get(:@__parameter_table)
|
13
|
-
else
|
14
|
-
table = RSpec::Parameterized::Table.new
|
15
|
-
caller_instance.instance_variable_set(:@__parameter_table, table)
|
16
|
-
end
|
17
|
-
|
18
|
-
row = Table::Row.new(self)
|
19
|
-
table.add_row(row)
|
20
|
-
row.add_param(other)
|
21
|
-
table
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
module TableSyntax
|
26
|
-
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create("3.2.0.rc1")
|
27
|
-
refine Object do
|
28
|
-
import_methods TableSyntaxImplement
|
29
|
-
end
|
30
|
-
|
31
|
-
refine Integer do
|
32
|
-
import_methods TableSyntaxImplement
|
33
|
-
end
|
34
|
-
|
35
|
-
refine Array do
|
36
|
-
import_methods TableSyntaxImplement
|
37
|
-
end
|
38
|
-
|
39
|
-
refine NilClass do
|
40
|
-
import_methods TableSyntaxImplement
|
41
|
-
end
|
42
|
-
|
43
|
-
refine TrueClass do
|
44
|
-
import_methods TableSyntaxImplement
|
45
|
-
end
|
46
|
-
|
47
|
-
refine FalseClass do
|
48
|
-
import_methods TableSyntaxImplement
|
49
|
-
end
|
50
|
-
else
|
51
|
-
refine Object do
|
52
|
-
include TableSyntaxImplement
|
53
|
-
end
|
54
|
-
|
55
|
-
refine Integer do
|
56
|
-
include TableSyntaxImplement
|
57
|
-
end
|
58
|
-
|
59
|
-
refine Array do
|
60
|
-
include TableSyntaxImplement
|
61
|
-
end
|
62
|
-
|
63
|
-
refine NilClass do
|
64
|
-
include TableSyntaxImplement
|
65
|
-
end
|
66
|
-
|
67
|
-
refine TrueClass do
|
68
|
-
include TableSyntaxImplement
|
69
|
-
end
|
70
|
-
|
71
|
-
refine FalseClass do
|
72
|
-
include TableSyntaxImplement
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|