transpec 2.3.1 → 2.3.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 +4 -4
- data/CHANGELOG.md +4 -0
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +0 -2
- data/README.md +13 -5
- data/README.md.erb +13 -5
- data/lib/transpec/ast/node.rb +2 -75
- data/lib/transpec/directory_cloner.rb +53 -0
- data/lib/transpec/dynamic_analyzer.rb +10 -50
- data/lib/transpec/record.rb +10 -1
- data/lib/transpec/rspec_dsl.rb +0 -2
- data/lib/transpec/static_context_inspector.rb +3 -3
- data/lib/transpec/syntax/current_example.rb +3 -8
- data/lib/transpec/syntax/example.rb +1 -1
- data/lib/transpec/syntax/example_group.rb +15 -11
- data/lib/transpec/syntax/have/dynamic_analysis.rb +0 -2
- data/lib/transpec/syntax/have/record_builder.rb +1 -5
- data/lib/transpec/syntax/its.rb +2 -6
- data/lib/transpec/syntax/method_stub.rb +6 -21
- data/lib/transpec/syntax/mixin/any_instance_block.rb +1 -5
- data/lib/transpec/syntax/mixin/expect_base.rb +1 -1
- data/lib/transpec/syntax/mixin/metadata.rb +10 -1
- data/lib/transpec/syntax/mixin/should_base.rb +4 -0
- data/lib/transpec/syntax/mixin/useless_and_return.rb +1 -5
- data/lib/transpec/syntax/oneliner_should.rb +4 -23
- data/lib/transpec/syntax/operator.rb +1 -1
- data/lib/transpec/syntax/raise_error.rb +1 -5
- data/lib/transpec/syntax/rspec_configure/config_modification.rb +2 -3
- data/lib/transpec/syntax/rspec_configure/framework.rb +2 -3
- data/lib/transpec/syntax/rspec_configure/mocks.rb +0 -4
- data/lib/transpec/syntax/rspec_configure.rb +0 -4
- data/lib/transpec/syntax/should.rb +1 -13
- data/lib/transpec/syntax/should_receive.rb +2 -11
- data/lib/transpec/syntax.rb +1 -1
- data/lib/transpec/util.rb +2 -3
- data/lib/transpec/version.rb +1 -1
- data/spec/transpec/directory_cloner_spec.rb +74 -0
- data/spec/transpec/dynamic_analyzer_spec.rb +0 -57
- data/spec/transpec/spec_suite_spec.rb +2 -2
- data/spec/transpec/static_context_inspector_spec.rb +0 -7
- data/spec/transpec/syntax/current_example_spec.rb +3 -6
- data/spec/transpec/syntax/double_spec.rb +3 -6
- data/spec/transpec/syntax/example_group_spec.rb +96 -1
- data/spec/transpec/syntax/example_spec.rb +3 -5
- data/spec/transpec/syntax/expect_spec.rb +3 -6
- data/spec/transpec/syntax/have_spec.rb +3 -5
- data/spec/transpec/syntax/its_spec.rb +3 -5
- data/spec/transpec/syntax/method_stub_spec.rb +3 -6
- data/spec/transpec/syntax/oneliner_should_spec.rb +3 -6
- data/spec/transpec/syntax/pending_spec.rb +3 -5
- data/transpec.gemspec +2 -1
- metadata +27 -6
- data/spec/transpec/ast/node_spec.rb +0 -323
@@ -14,13 +14,10 @@ module Transpec
|
|
14
14
|
|
15
15
|
describe '#conversion_target?' do
|
16
16
|
let(:target_node) do
|
17
|
-
ast.
|
18
|
-
|
19
|
-
method_name
|
20
|
-
next unless method_name == :stub
|
21
|
-
return node
|
17
|
+
ast.each_node(:send).find do |send_node|
|
18
|
+
method_name = send_node.children[1]
|
19
|
+
method_name == :stub
|
22
20
|
end
|
23
|
-
fail 'No #stub node is found!'
|
24
21
|
end
|
25
22
|
|
26
23
|
let(:method_stub_object) do
|
@@ -13,13 +13,10 @@ module Transpec
|
|
13
13
|
|
14
14
|
describe '#conversion_target?' do
|
15
15
|
let(:target_node) do
|
16
|
-
ast.
|
17
|
-
|
18
|
-
method_name
|
19
|
-
next unless method_name == :should
|
20
|
-
return node
|
16
|
+
ast.each_node(:send).find do |send_node|
|
17
|
+
method_name = send_node.children[1]
|
18
|
+
method_name == :should
|
21
19
|
end
|
22
|
-
fail 'No #should node is found!'
|
23
20
|
end
|
24
21
|
|
25
22
|
let(:should_object) do
|
@@ -13,12 +13,10 @@ module Transpec
|
|
13
13
|
|
14
14
|
describe '#conversion_target?' do
|
15
15
|
let(:target_node) do
|
16
|
-
ast.
|
17
|
-
|
18
|
-
method_name
|
19
|
-
return node if method_name == :pending
|
16
|
+
ast.each_node(:send).find do |send_node|
|
17
|
+
method_name = send_node.children[1]
|
18
|
+
method_name == :pending
|
20
19
|
end
|
21
|
-
fail 'No #pending node is found!'
|
22
20
|
end
|
23
21
|
|
24
22
|
let(:pending_object) do
|
data/transpec.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.required_ruby_version = '>= 1.9.3'
|
24
24
|
|
25
25
|
spec.add_runtime_dependency 'parser', '>= 2.1.6', '< 3.0'
|
26
|
+
spec.add_runtime_dependency 'astrolabe', '>= 0.5.1', '< 0.6'
|
26
27
|
spec.add_runtime_dependency 'bundler', '~> 1.3'
|
27
28
|
spec.add_runtime_dependency 'rainbow', '>= 1.99.1', '< 3.0'
|
28
29
|
spec.add_runtime_dependency 'json', '~> 1.8'
|
@@ -32,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
32
33
|
spec.add_development_dependency 'rspec', '~> 2.14.0'
|
33
34
|
spec.add_development_dependency 'fuubar', '~> 1.3'
|
34
35
|
spec.add_development_dependency 'simplecov', '~> 0.7'
|
35
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
36
|
+
spec.add_development_dependency 'rubocop', '~> 0.24'
|
36
37
|
spec.add_development_dependency 'guard-rspec', '>= 4.2.3', '< 5.0'
|
37
38
|
spec.add_development_dependency 'guard-rubocop', '~> 1.0'
|
38
39
|
spec.add_development_dependency 'guard-shell', '~> 0.5'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transpec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuji Nakayama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -30,6 +30,26 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '3.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: astrolabe
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 0.5.1
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0.6'
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 0.5.1
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0.6'
|
33
53
|
- !ruby/object:Gem::Dependency
|
34
54
|
name: bundler
|
35
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,14 +180,14 @@ dependencies:
|
|
160
180
|
requirements:
|
161
181
|
- - "~>"
|
162
182
|
- !ruby/object:Gem::Version
|
163
|
-
version: '0.
|
183
|
+
version: '0.24'
|
164
184
|
type: :development
|
165
185
|
prerelease: false
|
166
186
|
version_requirements: !ruby/object:Gem::Requirement
|
167
187
|
requirements:
|
168
188
|
- - "~>"
|
169
189
|
- !ruby/object:Gem::Version
|
170
|
-
version: '0.
|
190
|
+
version: '0.24'
|
171
191
|
- !ruby/object:Gem::Dependency
|
172
192
|
name: guard-rspec
|
173
193
|
requirement: !ruby/object:Gem::Requirement
|
@@ -261,6 +281,7 @@ files:
|
|
261
281
|
- lib/transpec/config.rb
|
262
282
|
- lib/transpec/conversion_error.rb
|
263
283
|
- lib/transpec/converter.rb
|
284
|
+
- lib/transpec/directory_cloner.rb
|
264
285
|
- lib/transpec/dynamic_analyzer.rb
|
265
286
|
- lib/transpec/dynamic_analyzer/node_util.rb
|
266
287
|
- lib/transpec/dynamic_analyzer/rewriter.rb
|
@@ -332,11 +353,11 @@ files:
|
|
332
353
|
- spec/support/cache_helper.rb
|
333
354
|
- spec/support/file_helper.rb
|
334
355
|
- spec/support/shared_context.rb
|
335
|
-
- spec/transpec/ast/node_spec.rb
|
336
356
|
- spec/transpec/cli_spec.rb
|
337
357
|
- spec/transpec/commit_message_spec.rb
|
338
358
|
- spec/transpec/config_spec.rb
|
339
359
|
- spec/transpec/converter_spec.rb
|
360
|
+
- spec/transpec/directory_cloner_spec.rb
|
340
361
|
- spec/transpec/dynamic_analyzer/rewriter_spec.rb
|
341
362
|
- spec/transpec/dynamic_analyzer_spec.rb
|
342
363
|
- spec/transpec/file_finder_spec.rb
|
@@ -416,11 +437,11 @@ test_files:
|
|
416
437
|
- spec/support/cache_helper.rb
|
417
438
|
- spec/support/file_helper.rb
|
418
439
|
- spec/support/shared_context.rb
|
419
|
-
- spec/transpec/ast/node_spec.rb
|
420
440
|
- spec/transpec/cli_spec.rb
|
421
441
|
- spec/transpec/commit_message_spec.rb
|
422
442
|
- spec/transpec/config_spec.rb
|
423
443
|
- spec/transpec/converter_spec.rb
|
444
|
+
- spec/transpec/directory_cloner_spec.rb
|
424
445
|
- spec/transpec/dynamic_analyzer/rewriter_spec.rb
|
425
446
|
- spec/transpec/dynamic_analyzer_spec.rb
|
426
447
|
- spec/transpec/file_finder_spec.rb
|
@@ -1,323 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
require 'transpec/ast/node'
|
5
|
-
|
6
|
-
module Transpec
|
7
|
-
module AST
|
8
|
-
describe Node do
|
9
|
-
include ::AST::Sexp
|
10
|
-
include_context 'parsed objects'
|
11
|
-
|
12
|
-
let(:source) do
|
13
|
-
<<-END
|
14
|
-
def some_method(arg_a, arg_b)
|
15
|
-
1.times do
|
16
|
-
do_something(arg_a)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
END
|
20
|
-
end
|
21
|
-
|
22
|
-
# (def :some_method
|
23
|
-
# (args
|
24
|
-
# (arg :arg_a)
|
25
|
-
# (arg :arg_b))
|
26
|
-
# (block
|
27
|
-
# (send
|
28
|
-
# (int 1) :times)
|
29
|
-
# (args)
|
30
|
-
# (send nil :do_something
|
31
|
-
# (lvar :arg_a))))
|
32
|
-
|
33
|
-
describe '#parent_node' do
|
34
|
-
context 'when the node has parent' do
|
35
|
-
let(:target_node) do
|
36
|
-
ast.each_descendent_node do |node|
|
37
|
-
return node if node == s(:args)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'returns the parent node' do
|
42
|
-
target_node.parent_node.type.should == :block
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
context 'when the node does not have parent' do
|
47
|
-
it 'returns nil' do
|
48
|
-
ast.parent_node.should be_nil
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
shared_context 'ancestor nodes' do
|
54
|
-
let(:target_node) do
|
55
|
-
ast.each_descendent_node do |node|
|
56
|
-
return node if node == s(:args)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
let(:expected_types) { [:block, :def] }
|
61
|
-
end
|
62
|
-
|
63
|
-
describe '#each_ancestor_node' do
|
64
|
-
include_context 'ancestor nodes'
|
65
|
-
|
66
|
-
context 'when a block is given' do
|
67
|
-
it 'yields each ancestor node' do
|
68
|
-
index = 0
|
69
|
-
|
70
|
-
target_node.each_ancestor_node do |node|
|
71
|
-
expected_type = expected_types[index]
|
72
|
-
node.type.should == expected_type
|
73
|
-
index += 1
|
74
|
-
end
|
75
|
-
|
76
|
-
index.should_not == 0
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'returns itself' do
|
80
|
-
returned_value = target_node.each_ancestor_node {}
|
81
|
-
returned_value.should be(target_node)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
context 'when no block is given' do
|
86
|
-
it 'returns enumerator' do
|
87
|
-
target_node.each_ancestor_node.should be_a(Enumerator)
|
88
|
-
end
|
89
|
-
|
90
|
-
describe 'the returned enumerator' do
|
91
|
-
it 'enumerates the ancestor nodes' do
|
92
|
-
enumerator = target_node.each_ancestor_node
|
93
|
-
|
94
|
-
expected_types.each do |expected_type|
|
95
|
-
enumerator.next.type.should == expected_type
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
describe '#ancestor_nodes' do
|
103
|
-
include_context 'ancestor nodes'
|
104
|
-
|
105
|
-
it 'returns an array' do
|
106
|
-
target_node.ancestor_nodes.should be_an(Array)
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'returns same nodes as #each_ancestor_node' do
|
110
|
-
types = target_node.ancestor_nodes.map(&:type)
|
111
|
-
types.should == expected_types
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
shared_context 'child nodes' do
|
116
|
-
let(:expected_types) { [:args, :block] }
|
117
|
-
end
|
118
|
-
|
119
|
-
describe '#each_child_node' do
|
120
|
-
include_context 'child nodes'
|
121
|
-
|
122
|
-
context 'when a block is given' do
|
123
|
-
it 'yields each child node' do
|
124
|
-
index = 0
|
125
|
-
|
126
|
-
ast.each_child_node do |node|
|
127
|
-
expected_type = expected_types[index]
|
128
|
-
node.type.should == expected_type
|
129
|
-
index += 1
|
130
|
-
end
|
131
|
-
|
132
|
-
index.should_not == 0
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'returns itself' do
|
136
|
-
returned_value = ast.each_child_node {}
|
137
|
-
returned_value.should be(ast)
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
context 'when no block is given' do
|
142
|
-
it 'returns enumerator' do
|
143
|
-
ast.each_child_node.should be_a(Enumerator)
|
144
|
-
end
|
145
|
-
|
146
|
-
describe 'the returned enumerator' do
|
147
|
-
it 'enumerates the child nodes' do
|
148
|
-
enumerator = ast.each_child_node
|
149
|
-
|
150
|
-
expected_types.each do |expected_type|
|
151
|
-
enumerator.next.type.should == expected_type
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
describe '#child_nodes' do
|
159
|
-
include_context 'child nodes'
|
160
|
-
|
161
|
-
it 'returns an array' do
|
162
|
-
ast.child_nodes.should be_an(Array)
|
163
|
-
end
|
164
|
-
|
165
|
-
it 'returns same nodes as #each_child_node' do
|
166
|
-
types = ast.child_nodes.map(&:type)
|
167
|
-
types.should == expected_types
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
shared_context 'descendent nodes' do
|
172
|
-
let(:expected_types) do
|
173
|
-
[:args, :arg, :arg, :block, :send, :int, :args, :send, :lvar]
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
describe '#each_descendent_node' do
|
178
|
-
include_context 'descendent nodes'
|
179
|
-
|
180
|
-
context 'when a block is given' do
|
181
|
-
it 'yields each descendent node with depth first order' do
|
182
|
-
index = 0
|
183
|
-
|
184
|
-
ast.each_descendent_node do |node|
|
185
|
-
expected_type = expected_types[index]
|
186
|
-
node.type.should == expected_type
|
187
|
-
index += 1
|
188
|
-
end
|
189
|
-
|
190
|
-
index.should_not == 0
|
191
|
-
end
|
192
|
-
|
193
|
-
it 'returns itself' do
|
194
|
-
returned_value = ast.each_descendent_node {}
|
195
|
-
returned_value.should be(ast)
|
196
|
-
end
|
197
|
-
end
|
198
|
-
|
199
|
-
context 'when no block is given' do
|
200
|
-
it 'returns enumerator' do
|
201
|
-
ast.each_descendent_node.should be_a(Enumerator)
|
202
|
-
end
|
203
|
-
|
204
|
-
describe 'the returned enumerator' do
|
205
|
-
it 'enumerates the child nodes' do
|
206
|
-
enumerator = ast.each_descendent_node
|
207
|
-
|
208
|
-
expected_types.each do |expected_type|
|
209
|
-
enumerator.next.type.should == expected_type
|
210
|
-
end
|
211
|
-
end
|
212
|
-
end
|
213
|
-
end
|
214
|
-
end
|
215
|
-
|
216
|
-
describe '#descendent_nodes' do
|
217
|
-
include_context 'descendent nodes'
|
218
|
-
|
219
|
-
it 'returns an array' do
|
220
|
-
ast.descendent_nodes.should be_an(Array)
|
221
|
-
end
|
222
|
-
|
223
|
-
it 'returns same nodes as #each_descendent_node' do
|
224
|
-
types = ast.descendent_nodes.map(&:type)
|
225
|
-
types.should == expected_types
|
226
|
-
end
|
227
|
-
end
|
228
|
-
|
229
|
-
describe '#each_node' do
|
230
|
-
let(:expected_types) do
|
231
|
-
[:def, :args, :arg, :arg, :block, :send, :int, :args, :send, :lvar]
|
232
|
-
end
|
233
|
-
|
234
|
-
context 'when a block is given' do
|
235
|
-
it 'yields itself and each descendent node with depth first order' do
|
236
|
-
index = 0
|
237
|
-
|
238
|
-
ast.each_node do |node|
|
239
|
-
expected_type = expected_types[index]
|
240
|
-
node.type.should == expected_type
|
241
|
-
index += 1
|
242
|
-
end
|
243
|
-
|
244
|
-
index.should_not == 0
|
245
|
-
end
|
246
|
-
|
247
|
-
it 'returns itself' do
|
248
|
-
returned_value = ast.each_node {}
|
249
|
-
returned_value.should be(ast)
|
250
|
-
end
|
251
|
-
end
|
252
|
-
|
253
|
-
context 'when no block is given' do
|
254
|
-
it 'returns enumerator' do
|
255
|
-
ast.each_node.should be_a(Enumerator)
|
256
|
-
end
|
257
|
-
|
258
|
-
describe 'the returned enumerator' do
|
259
|
-
it 'enumerates the child nodes' do
|
260
|
-
enumerator = ast.each_node
|
261
|
-
|
262
|
-
expected_types.each do |expected_type|
|
263
|
-
enumerator.next.type.should == expected_type
|
264
|
-
end
|
265
|
-
end
|
266
|
-
end
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
describe '#send_type?' do
|
271
|
-
context 'when the node is send type' do
|
272
|
-
let(:source) do
|
273
|
-
<<-END
|
274
|
-
do_something
|
275
|
-
END
|
276
|
-
end
|
277
|
-
|
278
|
-
it 'returns true' do
|
279
|
-
ast.send_type?.should be_true
|
280
|
-
end
|
281
|
-
end
|
282
|
-
|
283
|
-
context 'when the node is not send type' do
|
284
|
-
let(:source) do
|
285
|
-
<<-END
|
286
|
-
foo = 1
|
287
|
-
END
|
288
|
-
end
|
289
|
-
|
290
|
-
it 'returns false' do
|
291
|
-
ast.send_type?.should be_false
|
292
|
-
end
|
293
|
-
end
|
294
|
-
end
|
295
|
-
|
296
|
-
describe '#defined_type?' do
|
297
|
-
context 'when the node is defined? type' do
|
298
|
-
let(:source) do
|
299
|
-
<<-END
|
300
|
-
defined?(Foo)
|
301
|
-
END
|
302
|
-
end
|
303
|
-
|
304
|
-
it 'returns true' do
|
305
|
-
ast.defined_type?.should be_true
|
306
|
-
end
|
307
|
-
end
|
308
|
-
|
309
|
-
context 'when the node is not defined? type' do
|
310
|
-
let(:source) do
|
311
|
-
<<-END
|
312
|
-
foo = 1
|
313
|
-
END
|
314
|
-
end
|
315
|
-
|
316
|
-
it 'returns false' do
|
317
|
-
ast.defined_type?.should be_false
|
318
|
-
end
|
319
|
-
end
|
320
|
-
end
|
321
|
-
end
|
322
|
-
end
|
323
|
-
end
|