synvert-core 0.7.5 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -16
  3. data/lib/synvert/core/rewriter/action/append_action.rb +38 -0
  4. data/lib/synvert/core/rewriter/action/insert_action.rb +48 -0
  5. data/lib/synvert/core/rewriter/action/insert_after_action.rb +30 -0
  6. data/lib/synvert/core/rewriter/action/remove_action.rb +29 -0
  7. data/lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb +40 -0
  8. data/lib/synvert/core/rewriter/action/replace_with_action.rb +45 -0
  9. data/lib/synvert/core/rewriter/action.rb +1 -212
  10. data/lib/synvert/core/rewriter/condition/if_exist_condition.rb +15 -0
  11. data/lib/synvert/core/rewriter/condition/if_only_exist_condition.rb +12 -0
  12. data/lib/synvert/core/rewriter/condition/unless_exist_condition.rb +15 -0
  13. data/lib/synvert/core/rewriter/condition.rb +0 -33
  14. data/lib/synvert/core/rewriter/instance.rb +3 -0
  15. data/lib/synvert/core/rewriter/scope/goto_scope.rb +27 -0
  16. data/lib/synvert/core/rewriter/scope/within_scope.rb +36 -0
  17. data/lib/synvert/core/rewriter/scope.rb +0 -57
  18. data/lib/synvert/core/rewriter.rb +11 -11
  19. data/lib/synvert/core/version.rb +1 -1
  20. data/spec/synvert/core/rewriter/action/append_action_spec.rb +47 -0
  21. data/spec/synvert/core/rewriter/action/insert_action_spec.rb +89 -0
  22. data/spec/synvert/core/rewriter/action/insert_after_action_spec.rb +24 -0
  23. data/spec/synvert/core/rewriter/action/remove_action_spec.rb +24 -0
  24. data/spec/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action_spec.rb +6 -0
  25. data/spec/synvert/core/rewriter/action/replace_with_action_spec.rb +53 -0
  26. data/spec/synvert/core/rewriter/action_spec.rb +0 -222
  27. data/spec/synvert/core/rewriter/condition/if_exist_condition_spec.rb +36 -0
  28. data/spec/synvert/core/rewriter/condition/if_only_exist_condition_spec.rb +43 -0
  29. data/spec/synvert/core/rewriter/condition/unless_exist_condition_spec.rb +36 -0
  30. data/spec/synvert/core/rewriter/condition_spec.rb +0 -83
  31. data/spec/synvert/core/rewriter/scope/goto_scope_spec.rb +34 -0
  32. data/spec/synvert/core/rewriter/scope/within_scope.rb +46 -0
  33. data/spec/synvert/core/rewriter/scope_spec.rb +1 -72
  34. metadata +35 -2
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ module Synvert::Core
4
+ describe Rewriter::UnlessExistCondition do
5
+ let(:source) {
6
+ """
7
+ RSpec.configure do |config|
8
+ config.include EmailSpec::Helpers
9
+ config.include EmailSpec::Methods
10
+ end
11
+ """
12
+ }
13
+ let(:node) { Parser::CurrentRuby.parse(source) }
14
+ let(:instance) { double(:current_node => node) }
15
+
16
+ describe '#process' do
17
+ it 'call block if match anything' do
18
+ run = false
19
+ condition = Rewriter::UnlessExistCondition.new instance, type: 'send', message: 'include', arguments: ['FactoryGirl::Syntax::Methods'] do
20
+ run = true
21
+ end
22
+ condition.process
23
+ expect(run).to be_truthy
24
+ end
25
+
26
+ it 'not call block if not match anything' do
27
+ run = false
28
+ condition = Rewriter::UnlessExistCondition.new instance, type: 'send', message: 'include', arguments: ['EmailSpec::Helpers'] do
29
+ run = true
30
+ end
31
+ condition.process
32
+ expect(run).to be_falsey
33
+ end
34
+ end
35
+ end
36
+ end
@@ -2,88 +2,5 @@ require 'spec_helper'
2
2
 
3
3
  module Synvert::Core
4
4
  describe Rewriter::Condition do
5
- let(:source) {
6
- """
7
- RSpec.configure do |config|
8
- config.include EmailSpec::Helpers
9
- config.include EmailSpec::Methods
10
- end
11
- """
12
- }
13
- let(:node) { Parser::CurrentRuby.parse(source) }
14
- let(:instance) { double(:current_node => node) }
15
-
16
- describe Rewriter::IfExistCondition do
17
- describe '#process' do
18
- it 'call block if match anything' do
19
- run = false
20
- condition = Rewriter::IfExistCondition.new instance, type: 'send', message: 'include', arguments: ['EmailSpec::Helpers'] do
21
- run = true
22
- end
23
- condition.process
24
- expect(run).to be_truthy
25
- end
26
-
27
- it 'not call block if not match anything' do
28
- run = false
29
- condition = Rewriter::IfExistCondition.new instance, type: 'send', message: 'include', arguments: ['FactoryGirl::SyntaxMethods'] do
30
- run = true
31
- end
32
- condition.process
33
- expect(run).to be_falsey
34
- end
35
- end
36
- end
37
-
38
- describe Rewriter::UnlessExistCondition do
39
- describe '#process' do
40
- it 'call block if match anything' do
41
- run = false
42
- condition = Rewriter::UnlessExistCondition.new instance, type: 'send', message: 'include', arguments: ['FactoryGirl::Syntax::Methods'] do
43
- run = true
44
- end
45
- condition.process
46
- expect(run).to be_truthy
47
- end
48
-
49
- it 'not call block if not match anything' do
50
- run = false
51
- condition = Rewriter::UnlessExistCondition.new instance, type: 'send', message: 'include', arguments: ['EmailSpec::Helpers'] do
52
- run = true
53
- end
54
- condition.process
55
- expect(run).to be_falsey
56
- end
57
- end
58
- end
59
-
60
- describe Rewriter::IfOnlyExistCondition do
61
- describe '#process' do
62
- it 'gets matching nodes' do
63
- source = """
64
- RSpec.configure do |config|
65
- config.include EmailSpec::Helpers
66
- end
67
- """
68
- node = Parser::CurrentRuby.parse(source)
69
- instance = double(:current_node => node)
70
- run = false
71
- condition = Rewriter::IfOnlyExistCondition.new instance, type: 'send', message: 'include', arguments: ['EmailSpec::Helpers'] do
72
- run = true
73
- end
74
- condition.process
75
- expect(run).to be_truthy
76
- end
77
-
78
- it 'not call block if does not match' do
79
- run = false
80
- condition = Rewriter::IfOnlyExistCondition.new instance, type: 'send', message: 'include', arguments: ['EmailSpec::Helpers'] do
81
- run = true
82
- end
83
- condition.process
84
- expect(run).to be_falsey
85
- end
86
- end
87
- end
88
5
  end
89
6
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ module Synvert::Core
4
+ describe Rewriter::GotoScope do
5
+ let(:instance) {
6
+ rewriter = Rewriter.new('foo', 'bar')
7
+ Rewriter::Instance.new(rewriter, 'file pattern')
8
+ }
9
+ let(:source) {'''
10
+ Factory.define :user do |user|
11
+ end
12
+ '''}
13
+ let(:node) { Parser::CurrentRuby.parse(source) }
14
+ before do
15
+ Rewriter::Instance.reset
16
+ instance.current_node = node
17
+ end
18
+
19
+ describe '#process' do
20
+ it 'call block with child node' do
21
+ run = false
22
+ type_in_scope = nil
23
+ scope = Rewriter::GotoScope.new instance, :caller do
24
+ run = true
25
+ type_in_scope = node.type
26
+ end
27
+ scope.process
28
+ expect(run).to be_truthy
29
+ expect(type_in_scope).to eq :send
30
+ expect(instance.current_node.type).to eq :block
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ module Synvert::Core
4
+ describe Rewriter::WithinScope do
5
+ let(:instance) {
6
+ rewriter = Rewriter.new('foo', 'bar')
7
+ Rewriter::Instance.new(rewriter, 'file pattern')
8
+ }
9
+ let(:source) {"""
10
+ describe Post do
11
+ it 'gets post' do
12
+ FactoryGirl.create :post
13
+ end
14
+ end
15
+ """}
16
+ let(:node) { Parser::CurrentRuby.parse(source) }
17
+ before do
18
+ Rewriter::Instance.reset
19
+ instance.current_node = node
20
+ end
21
+
22
+ describe '#process' do
23
+ it 'not call block if no matching node' do
24
+ run = false
25
+ scope = Rewriter::WithinScope.new instance, type: 'send', message: 'missing' do
26
+ run = true
27
+ end
28
+ scope.process
29
+ expect(run).to be_falsey
30
+ end
31
+
32
+ it 'call block if there is matching node' do
33
+ run = false
34
+ type_in_scope = nil
35
+ scope = Rewriter::WithinScope.new instance, type: 'send', receiver: 'FactoryGirl', message: 'create', arguments: [':post'] do
36
+ run = true
37
+ type_in_scope = node.type
38
+ end
39
+ scope.process
40
+ expect(run).to be_truthy
41
+ expect(type_in_scope).to eq :send
42
+ expect(instance.current_node.type).to eq :block
43
+ end
44
+ end
45
+ end
46
+ end
@@ -1,77 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Synvert::Core
4
- describe Rewriter::WithinScope do
5
- let(:instance) {
6
- rewriter = Rewriter.new('foo', 'bar')
7
- Rewriter::Instance.new(rewriter, 'file pattern')
8
- }
9
- let(:source) {"""
10
- describe Post do
11
- it 'gets post' do
12
- FactoryGirl.create :post
13
- end
14
- end
15
- """}
16
- let(:node) { Parser::CurrentRuby.parse(source) }
17
- before do
18
- Rewriter::Instance.reset
19
- instance.current_node = node
20
- end
21
-
22
- describe '#process' do
23
- it 'not call block if no matching node' do
24
- run = false
25
- scope = Rewriter::WithinScope.new instance, type: 'send', message: 'missing' do
26
- run = true
27
- end
28
- scope.process
29
- expect(run).to be_falsey
30
- end
31
-
32
- it 'call block if there is matching node' do
33
- run = false
34
- type_in_scope = nil
35
- scope = Rewriter::WithinScope.new instance, type: 'send', receiver: 'FactoryGirl', message: 'create', arguments: [':post'] do
36
- run = true
37
- type_in_scope = node.type
38
- end
39
- scope.process
40
- expect(run).to be_truthy
41
- expect(type_in_scope).to eq :send
42
- expect(instance.current_node.type).to eq :block
43
- end
44
- end
45
- end
46
-
47
- describe Rewriter::GotoScope do
48
- let(:instance) {
49
- rewriter = Rewriter.new('foo', 'bar')
50
- Rewriter::Instance.new(rewriter, 'file pattern')
51
- }
52
- let(:source) {'''
53
- Factory.define :user do |user|
54
- end
55
- '''}
56
- let(:node) { Parser::CurrentRuby.parse(source) }
57
- before do
58
- Rewriter::Instance.reset
59
- instance.current_node = node
60
- end
61
-
62
- describe '#process' do
63
- it 'call block with child node' do
64
- run = false
65
- type_in_scope = nil
66
- scope = Rewriter::GotoScope.new instance, :caller do
67
- run = true
68
- type_in_scope = node.type
69
- end
70
- scope.process
71
- expect(run).to be_truthy
72
- expect(type_in_scope).to eq :send
73
- expect(instance.current_node.type).to eq :block
74
- end
75
- end
4
+ describe Rewriter::Scope do
76
5
  end
77
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synvert-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-14 00:00:00.000000000 Z
11
+ date: 2014-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -146,11 +146,22 @@ files:
146
146
  - lib/synvert/core/node_ext.rb
147
147
  - lib/synvert/core/rewriter.rb
148
148
  - lib/synvert/core/rewriter/action.rb
149
+ - lib/synvert/core/rewriter/action/append_action.rb
150
+ - lib/synvert/core/rewriter/action/insert_action.rb
151
+ - lib/synvert/core/rewriter/action/insert_after_action.rb
152
+ - lib/synvert/core/rewriter/action/remove_action.rb
153
+ - lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
154
+ - lib/synvert/core/rewriter/action/replace_with_action.rb
149
155
  - lib/synvert/core/rewriter/condition.rb
156
+ - lib/synvert/core/rewriter/condition/if_exist_condition.rb
157
+ - lib/synvert/core/rewriter/condition/if_only_exist_condition.rb
158
+ - lib/synvert/core/rewriter/condition/unless_exist_condition.rb
150
159
  - lib/synvert/core/rewriter/gem_spec.rb
151
160
  - lib/synvert/core/rewriter/helper.rb
152
161
  - lib/synvert/core/rewriter/instance.rb
153
162
  - lib/synvert/core/rewriter/scope.rb
163
+ - lib/synvert/core/rewriter/scope/goto_scope.rb
164
+ - lib/synvert/core/rewriter/scope/within_scope.rb
154
165
  - lib/synvert/core/rewriter/warning.rb
155
166
  - lib/synvert/core/version.rb
156
167
  - spec/spec_helper.rb
@@ -158,11 +169,22 @@ files:
158
169
  - spec/synvert/core/configuration_spec.rb
159
170
  - spec/synvert/core/engine/erb_spec.rb
160
171
  - spec/synvert/core/node_ext_spec.rb
172
+ - spec/synvert/core/rewriter/action/append_action_spec.rb
173
+ - spec/synvert/core/rewriter/action/insert_action_spec.rb
174
+ - spec/synvert/core/rewriter/action/insert_after_action_spec.rb
175
+ - spec/synvert/core/rewriter/action/remove_action_spec.rb
176
+ - spec/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action_spec.rb
177
+ - spec/synvert/core/rewriter/action/replace_with_action_spec.rb
161
178
  - spec/synvert/core/rewriter/action_spec.rb
179
+ - spec/synvert/core/rewriter/condition/if_exist_condition_spec.rb
180
+ - spec/synvert/core/rewriter/condition/if_only_exist_condition_spec.rb
181
+ - spec/synvert/core/rewriter/condition/unless_exist_condition_spec.rb
162
182
  - spec/synvert/core/rewriter/condition_spec.rb
163
183
  - spec/synvert/core/rewriter/gem_spec_spec.rb
164
184
  - spec/synvert/core/rewriter/helper_spec.rb
165
185
  - spec/synvert/core/rewriter/instance_spec.rb
186
+ - spec/synvert/core/rewriter/scope/goto_scope_spec.rb
187
+ - spec/synvert/core/rewriter/scope/within_scope.rb
166
188
  - spec/synvert/core/rewriter/scope_spec.rb
167
189
  - spec/synvert/core/rewriter/warning_spec.rb
168
190
  - spec/synvert/core/rewriter_spec.rb
@@ -197,11 +219,22 @@ test_files:
197
219
  - spec/synvert/core/configuration_spec.rb
198
220
  - spec/synvert/core/engine/erb_spec.rb
199
221
  - spec/synvert/core/node_ext_spec.rb
222
+ - spec/synvert/core/rewriter/action/append_action_spec.rb
223
+ - spec/synvert/core/rewriter/action/insert_action_spec.rb
224
+ - spec/synvert/core/rewriter/action/insert_after_action_spec.rb
225
+ - spec/synvert/core/rewriter/action/remove_action_spec.rb
226
+ - spec/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action_spec.rb
227
+ - spec/synvert/core/rewriter/action/replace_with_action_spec.rb
200
228
  - spec/synvert/core/rewriter/action_spec.rb
229
+ - spec/synvert/core/rewriter/condition/if_exist_condition_spec.rb
230
+ - spec/synvert/core/rewriter/condition/if_only_exist_condition_spec.rb
231
+ - spec/synvert/core/rewriter/condition/unless_exist_condition_spec.rb
201
232
  - spec/synvert/core/rewriter/condition_spec.rb
202
233
  - spec/synvert/core/rewriter/gem_spec_spec.rb
203
234
  - spec/synvert/core/rewriter/helper_spec.rb
204
235
  - spec/synvert/core/rewriter/instance_spec.rb
236
+ - spec/synvert/core/rewriter/scope/goto_scope_spec.rb
237
+ - spec/synvert/core/rewriter/scope/within_scope.rb
205
238
  - spec/synvert/core/rewriter/scope_spec.rb
206
239
  - spec/synvert/core/rewriter/warning_spec.rb
207
240
  - spec/synvert/core/rewriter_spec.rb