specify 0.10.0 → 0.10.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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: specify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Nyman
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2014-12-13 00:00:00.000000000 Z
11
+ date: 2015-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: '1.10'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.7'
26
+ version: '1.10'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -40,40 +40,12 @@ dependencies:
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.1'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.1'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec-core
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.1'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.1'
69
- - !ruby/object:Gem::Dependency
70
- name: parser
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - ">="
74
46
  - !ruby/object:Gem::Version
75
47
  version: '0'
76
- type: :runtime
48
+ type: :development
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
@@ -81,13 +53,13 @@ dependencies:
81
53
  - !ruby/object:Gem::Version
82
54
  version: '0'
83
55
  - !ruby/object:Gem::Dependency
84
- name: unparser
56
+ name: pry
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
59
  - - ">="
88
60
  - !ruby/object:Gem::Version
89
61
  version: '0'
90
- type: :runtime
62
+ type: :development
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
@@ -95,13 +67,13 @@ dependencies:
95
67
  - !ruby/object:Gem::Version
96
68
  version: '0'
97
69
  - !ruby/object:Gem::Dependency
98
- name: proc_to_ast
70
+ name: simplecov
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
73
  - - ">="
102
74
  - !ruby/object:Gem::Version
103
75
  version: '0'
104
- type: :runtime
76
+ type: :development
105
77
  prerelease: false
106
78
  version_requirements: !ruby/object:Gem::Requirement
107
79
  requirements:
@@ -109,13 +81,13 @@ dependencies:
109
81
  - !ruby/object:Gem::Version
110
82
  version: '0'
111
83
  - !ruby/object:Gem::Dependency
112
- name: binding_of_caller
84
+ name: rubocop
113
85
  requirement: !ruby/object:Gem::Requirement
114
86
  requirements:
115
87
  - - ">="
116
88
  - !ruby/object:Gem::Version
117
89
  version: '0'
118
- type: :runtime
90
+ type: :development
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
93
  requirements:
@@ -133,36 +105,32 @@ extensions: []
133
105
  extra_rdoc_files: []
134
106
  files:
135
107
  - ".gitignore"
108
+ - ".hound.yml"
109
+ - ".rubocop.yml"
110
+ - ".travis.yml"
111
+ - CODE_OF_CONDUCT.md
136
112
  - Gemfile
137
113
  - LICENSE.txt
138
114
  - README.md
139
115
  - Rakefile
116
+ - bin/console
117
+ - bin/setup
140
118
  - lib/specify.rb
141
119
  - lib/specify/rspec/documentation_formatter.rb
142
120
  - lib/specify/rspec/example_group.rb
143
121
  - lib/specify/rspec/notification.rb
144
- - lib/specify/rspec/parameterized.rb
145
122
  - lib/specify/rspec/reporter.rb
146
123
  - lib/specify/rspec/shared_steps.rb
147
- - lib/specify/rspec/table.rb
148
- - lib/specify/rspec/tabular.rb
149
124
  - lib/specify/rspec/world.rb
150
125
  - lib/specify/spec.rb
151
126
  - lib/specify/version.rb
152
- - spec/api_spec.rb
153
- - spec/parameterized_spec.rb
154
- - spec/pending_spec.rb
155
- - spec/shared_steps_spec.rb
156
- - spec/spec_helper.rb
157
- - spec/steps_spec.rb
158
- - spec/top_level_spec.rb
159
127
  - specify.gemspec
160
128
  homepage: https://github.com/jnyman/specify
161
129
  licenses:
162
130
  - MIT
163
131
  metadata: {}
164
132
  post_install_message: "\n(::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::) (::)\n\n
165
- \ Specify 0.10.0 has been installed.\n\n(::) (::) (::) (::) (::) (::) (::) (::)
133
+ \ Specify 0.10.2 has been installed.\n\n(::) (::) (::) (::) (::) (::) (::) (::)
166
134
  (::) (::) (::) (::)\n "
167
135
  rdoc_options: []
168
136
  require_paths:
@@ -171,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
171
139
  requirements:
172
140
  - - ">="
173
141
  - !ruby/object:Gem::Version
174
- version: 2.0.0
142
+ version: '2.0'
175
143
  required_rubygems_version: !ruby/object:Gem::Requirement
176
144
  requirements:
177
145
  - - ">="
@@ -179,15 +147,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
147
  version: 1.8.29
180
148
  requirements: []
181
149
  rubyforge_project:
182
- rubygems_version: 2.2.2
150
+ rubygems_version: 2.4.5.1
183
151
  signing_key:
184
152
  specification_version: 4
185
153
  summary: Description Language Specification and Execution Engine
186
- test_files:
187
- - spec/api_spec.rb
188
- - spec/parameterized_spec.rb
189
- - spec/pending_spec.rb
190
- - spec/shared_steps_spec.rb
191
- - spec/spec_helper.rb
192
- - spec/steps_spec.rb
193
- - spec/top_level_spec.rb
154
+ test_files: []
@@ -1,138 +0,0 @@
1
- require 'parser'
2
- require 'unparser'
3
- require 'proc_to_ast'
4
-
5
- module RSpec
6
- module Specify
7
- module Parameterized
8
- autoload :Tabular, 'specify/rspec/tabular'
9
-
10
- module ExampleGroupMethods
11
- class Parameter
12
- attr_reader :arg_names, :table_format, :block
13
-
14
- def initialize(arg_names, table_format, &block)
15
- @arg_names, @table_format, @block = arg_names, table_format, block
16
- end
17
- end
18
-
19
- def data_condition(*args, &block)
20
- set_parameters(args, false, &block)
21
- end
22
-
23
- def data_table(*args, &block)
24
- set_parameters(args, true, &block)
25
- end
26
-
27
- def test_condition(*args, &block)
28
- if @parameter.nil?
29
- @parameterized_pending_cases ||= []
30
- @parameterized_pending_cases << [args, block]
31
- else
32
- define_cases(@parameter, *args, &block)
33
- end
34
- end
35
-
36
- alias_method :where, :data_condition
37
- alias_method :where_table, :data_table
38
- alias_method :with_those, :test_condition
39
-
40
- private
41
-
42
- def set_parameters(arg_names, table_format, &block)
43
- @parameter = Parameter.new(arg_names, table_format, &block)
44
-
45
- if @parameterized_pending_cases
46
- @parameterized_pending_cases.each { |e|
47
- define_cases(@parameter, *e[0], &e[1])
48
- }
49
- end
50
- end
51
-
52
- def separate_table_like_block(b)
53
- ast = b.to_ast
54
- inner_ast = ast.children[2]
55
- if inner_ast.type == :send
56
- lines = [inner_ast]
57
- else
58
- lines = inner_ast.children
59
- end
60
-
61
- lines.map do |node|
62
- if node.type == :send
63
- buf = []
64
- extract_value(node, buf)
65
- buf.reverse
66
- end
67
- end
68
- end
69
-
70
- def extract_value(node, buf)
71
- receiver, method, arg = node.children
72
-
73
- if method == :|
74
- buf << eval_source_fragment(Unparser.unparse(arg))
75
- end
76
-
77
- if receiver.is_a?(AST::Node) && receiver.type == :send && receiver.children[1] == :|
78
- extract_value(receiver, buf)
79
- else
80
- buf << eval_source_fragment(Unparser.unparse(receiver))
81
- end
82
- end
83
-
84
- def eval_source_fragment(source_fragment)
85
- instance = new # for evaluate let methods.
86
- if defined?(self.superclass::LetDefinitions)
87
- instance.extend self.superclass::LetDefinitions
88
- end
89
- instance.instance_eval(source_fragment)
90
- end
91
-
92
- def define_cases(parameter, *args, &block)
93
- instance = new # for evaluate let methods
94
- if defined?(self.superclass::LetDefinitions)
95
- instance.extend self.superclass::LetDefinitions
96
- end
97
-
98
- if parameter.table_format
99
- param_sets = separate_table_like_block(parameter.block)
100
- else
101
- extracted = instance.instance_eval(&parameter.block)
102
- param_sets = extracted.is_a?(Array) ? extracted : extracted.to_params
103
- end
104
-
105
- # for only one parameter
106
- param_sets = param_sets.map { |x| Array[x] } if !param_sets[0].is_a?(Array)
107
-
108
- param_sets.each do |params|
109
- pairs = [parameter.arg_names, params].transpose
110
- pretty_params = pairs.map {|t| "#{t[0]}: #{params_inspect(t[1])}"}.join(', ')
111
- describe(pretty_params, *args) do
112
- pairs.each do |n|
113
- let(n[0]) { n[1] }
114
- end
115
-
116
- module_eval(&block)
117
- end
118
- end
119
- end
120
-
121
- def params_inspect(obj)
122
- begin
123
- obj.is_a?(Proc) ? obj.to_raw_source : obj.inspect
124
- #rescue Parser::SyntaxError
125
- # return obj.inspect
126
- end
127
- end
128
-
129
- end
130
- end
131
- end
132
-
133
- module Core
134
- class ExampleGroup
135
- extend ::RSpec::Specify::Parameterized::ExampleGroupMethods
136
- end
137
- end
138
- end
@@ -1,54 +0,0 @@
1
- module RSpec
2
- module Specify
3
- module Parameterized
4
- class Table
5
- attr_reader :last_row
6
-
7
- def initialize
8
- @rows = []
9
- @last_row = nil
10
- end
11
-
12
- def add_row(row)
13
- unless @rows.find {|r| r.object_id == row.object_id}
14
- @rows << row
15
- @last_row = row
16
- end
17
- self
18
- end
19
-
20
- def add_param_to_last_row(param)
21
- last_row.add_param(param)
22
- self
23
- end
24
-
25
- alias :| :add_param_to_last_row
26
-
27
- def to_a
28
- @rows.map(&:to_a)
29
- end
30
-
31
- alias :to_params :to_a
32
-
33
- class Row
34
- def initialize(param)
35
- @params = [param]
36
- end
37
-
38
- def add_param(param)
39
- @params << param
40
- end
41
-
42
- def to_a
43
- @params
44
- end
45
-
46
- #def to_params
47
- # [@params]
48
- #end
49
- end
50
-
51
- end
52
- end
53
- end
54
- end
@@ -1,45 +0,0 @@
1
- require 'binding_of_caller'
2
- require 'specify/rspec/table'
3
-
4
- module RSpec
5
- module Specify
6
- module Parameterized
7
- module TabularSyntax
8
- def |(other)
9
- where_binding = binding.of_caller(1) # get where block binding
10
- caller_instance = eval('self', where_binding) # get caller instance (ExampleGroup)
11
-
12
- if caller_instance.instance_variable_defined?(:@__parameter_table)
13
- table = caller_instance.instance_variable_get(:@__parameter_table)
14
- else
15
- table = RSpec::Specify::Parameterized::Table.new
16
- caller_instance.instance_variable_set(:@__parameter_table, table)
17
- end
18
-
19
- row = Table::Row.new(self)
20
- table.add_row(row)
21
- row.add_param(other)
22
- table
23
- end
24
- end
25
-
26
- module Tabular
27
- refine Object do
28
- include TabularSyntax
29
- end
30
-
31
- refine Fixnum do
32
- include TabularSyntax
33
- end
34
-
35
- refine Bignum do
36
- include TabularSyntax
37
- end
38
-
39
- refine Array do
40
- include TabularSyntax
41
- end
42
- end
43
- end
44
- end
45
- end
data/spec/api_spec.rb DELETED
@@ -1,45 +0,0 @@
1
- require 'spec_helper'
2
-
3
- Component 'component block' do
4
- steps 'steps block' do
5
- step 'step block' do
6
- @result = 'result'
7
- expect(@result).to eq('result')
8
- end
9
- end
10
-
11
- Step 'step block' do
12
- step 'step block' do
13
- @result = 'result'
14
- expect(@result).to eq('result')
15
- end
16
- end
17
-
18
- tests 'tests block' do
19
- test 'test block' do
20
- @result = 'result'
21
- expect(@result).to eq('result')
22
- end
23
- end
24
-
25
- Test 'test block' do
26
- test 'test block' do
27
- @result = 'result'
28
- expect(@result).to eq('result')
29
- end
30
- end
31
-
32
- rules 'rules block' do
33
- rule 'rule block' do
34
- @result = 'result'
35
- expect(@result).to eq('result')
36
- end
37
- end
38
-
39
- Rule 'rule block' do
40
- rule 'rule block' do
41
- @result = 'result'
42
- expect(@result).to eq('result')
43
- end
44
- end
45
- end
@@ -1,229 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe RSpec::Specify::Parameterized do
4
- describe 'data_condition' do
5
- data_condition(:a, :b, :answer) do
6
- [
7
- [1, 2, 3],
8
- [5, 8, 13],
9
- [0, 0, 0]
10
- ]
11
- end
12
-
13
- test_condition do
14
- it 'will perform additions' do
15
- expect(a + b).to eq answer
16
- end
17
- end
18
- end
19
-
20
- describe 'lambda parameter' do
21
- data_condition(:a, :b, :answer) do
22
- [
23
- [1 , 2 , -> {should == 3}],
24
- [5 , 8 , -> {should == 13}],
25
- [0 , 0 , -> {should == 0}]
26
- ]
27
- end
28
-
29
- test_condition do
30
- subject {a + b}
31
- it 'will perform additions' do
32
- self.instance_exec(&answer)
33
- end
34
- end
35
- end
36
-
37
- describe 'table separated with pipe' do
38
- data_table(:a, :b, :answer) do
39
- 1 | 2 | 3
40
- 'hello ' | 'world' | 'hello world'
41
- [1, 2, 3] | [4, 5, 6] | [1, 2, 3, 4, 5, 6]
42
- end
43
-
44
- test_condition do
45
- it 'will calculate that a plus b is answer' do
46
- expect(a + b).to eq answer
47
- end
48
- end
49
- end
50
-
51
- describe 'table separated with pipe (using Tabular syntax)' do
52
- using RSpec::Specify::Parameterized::Tabular
53
-
54
- data_condition(:a, :b, :answer) do
55
- 1 | 2 | 3
56
- 'hello ' | 'world' | 'hello world'
57
- [1, 2, 3] | [4, 5, 6] | [1, 2, 3, 4, 5, 6]
58
- end
59
-
60
- test_condition do
61
- it 'will calculate that a plus b is answer' do
62
- expect(a + b).to eq answer
63
- end
64
- end
65
- end
66
-
67
- describe 'table separated with pipe and lambda parameter (using Tabular syntax)' do
68
- using RSpec::Specify::Parameterized::Tabular
69
-
70
- data_condition(:a, :b, :matcher) do
71
- 1 | 2 | -> { eq(3) }
72
- 'hello ' | 'world' | -> { eq('hello world') }
73
- [1, 2, 3] | [4, 5, 6] | -> { be_a(Array) }
74
- end
75
-
76
- test_condition do
77
- it 'will calculate that a plus b is answer' do
78
- expect(a + b).to instance_exec(&matcher)
79
- end
80
- end
81
- end
82
-
83
- context 'when the data_condition block is after test_condition' do
84
- test_condition do
85
- it 'will perform additions' do
86
- expect(a + b).to eq answer
87
- end
88
- end
89
-
90
- test_condition do
91
- subject { a }
92
- it { should be_a Numeric }
93
- end
94
-
95
- data_condition(:a, :b, :answer) do
96
- [
97
- [1 , 2 , 3],
98
- [5 , 8 , 13],
99
- [0 , 0 , 0]
100
- ]
101
- end
102
- end
103
-
104
- context 'when the data_condition block is between test_condition blocks' do
105
- test_condition do
106
- it 'should perform additions' do
107
- expect(a + b).to eq answer
108
- end
109
- end
110
-
111
- data_condition(:a, :b, :answer) do
112
- [
113
- [1 , 2 , 3],
114
- [5 , 8 , 13],
115
- [0 , 0 , 0]
116
- ]
117
- end
118
-
119
- test_condition do
120
- subject { a }
121
- it { should be_a Numeric }
122
- end
123
- end
124
-
125
- context 'when the data_condition has only one parameter to be set' do
126
- data_condition(:x) do
127
- [1, 2, 3]
128
- end
129
-
130
- test_condition do
131
- it 'can take an array of elements' do
132
- expect(x).to eq x
133
- end
134
- end
135
- end
136
-
137
- context 'when the table has only a row' do
138
- data_table(:a, :b, :answer) do
139
- 1 | 2 | 3
140
- end
141
-
142
- test_condition do
143
- it 'will calculate that a plus b is answer' do
144
- expect(a + b).to eq answer
145
- end
146
- end
147
- end
148
-
149
- context 'when the table has only a row (using Tabular format)' do
150
- using RSpec::Specify::Parameterized::Tabular
151
-
152
- data_condition(:a, :b, :answer) do
153
- 1 | 2 | 3
154
- end
155
-
156
- test_condition do
157
- it 'will calculate that a plus b is answer' do
158
- expect(a + b).to eq answer
159
- end
160
- end
161
- end
162
-
163
- context 'when the data_condition has let variables, defined by parent example group' do
164
- describe 'parent (define let)' do
165
- let(:five) { 5 }
166
- let(:eight) { 8 }
167
-
168
- describe 'child 1' do
169
- data_condition(:a, :b, :answer) do
170
- [
171
- [1 , 2 , 3],
172
- [five , eight , 13],
173
- ]
174
- end
175
-
176
- test_condition do
177
- it 'will calculate that a plus b is answer' do
178
- expect(a + b).to eq answer
179
- end
180
- end
181
- end
182
-
183
- describe 'child 2 (data_table)' do
184
- data_table(:a, :b, :answer) do
185
- 1 | 2 | 3
186
- five | eight | 13
187
- end
188
-
189
- test_condition do
190
- it 'will calculate that a plus b is answer' do
191
- expect(a + b).to eq answer
192
- end
193
- end
194
- end
195
-
196
- describe 'child 3 (Using Tabular)' do
197
- using RSpec::Specify::Parameterized::Tabular
198
-
199
- data_condition(:a, :b, :answer) do
200
- 1 | 2 | 3
201
- five | eight | 13
202
- end
203
-
204
- test_condition do
205
- it 'will calculate that a plus b is answer' do
206
- expect(a + b).to eq answer
207
- end
208
- end
209
- end
210
-
211
- let(:eq_matcher) { eq(13) }
212
- describe 'child 3 (use matcher)' do
213
- data_condition(:a, :b, :matcher) do
214
- [
215
- [1 , 2 , eq(3) ],
216
- [five , eight , eq_matcher],
217
- ]
218
- end
219
-
220
- test_condition do
221
- it 'will calculate that a plus b is answer' do
222
- expect(a + b).to matcher
223
- end
224
- end
225
- end
226
- end
227
- end
228
-
229
- end