synvert-core 0.7.5 → 0.8.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.
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