synvert-core 0.8.2 → 0.9.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +2 -4
- data/lib/synvert/core/rewriter/ruby_version.rb +22 -0
- data/lib/synvert/core/rewriter.rb +10 -1
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/rewriter_spec.rb +32 -4
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e22816d20d86721074e337cb21835d2d511aca1
|
4
|
+
data.tar.gz: 9b29d40275b347297b50a30facd15e3a5c766693
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78bc7c57442b48eb5814ef6433cd82b819a98d13c10b714879d41895274fd0bb62a5b3a8e6d8ce21c2acff8565caddf0a4f2ab8946cad4eede82a93837df459b
|
7
|
+
data.tar.gz: 54ab3b4ea2d3ea576dc4bf95f84ce93a476ec253b32857ec7556e8dabaf3a58b189be316432c733e33a5aa0ceb06b09760be9f8cf06bedd8d4756d9e63a44a47
|
data/CHANGELOG.md
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Synvert::Core
|
4
|
+
# GemSpec checks and compares gem version.
|
5
|
+
class Rewriter::RubyVersion
|
6
|
+
# Initialize a ruby_version.
|
7
|
+
#
|
8
|
+
# @param version [String] ruby version
|
9
|
+
def initialize(version)
|
10
|
+
@version = version
|
11
|
+
end
|
12
|
+
|
13
|
+
# Check if the specified ruby version matches current ruby version.
|
14
|
+
#
|
15
|
+
# @return [Boolean] true if matches, otherwise false.
|
16
|
+
def match?
|
17
|
+
# Gem::Version initialize will strip RUBY_VERSION directly in ruby 1.9,
|
18
|
+
# which is solved from ruby 2.0.0, which calls dup internally.
|
19
|
+
Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new(@version)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -39,6 +39,7 @@ module Synvert::Core
|
|
39
39
|
|
40
40
|
autoload :Helper, 'synvert/core/rewriter/helper'
|
41
41
|
|
42
|
+
autoload :RubyVersion, 'synvert/core/rewriter/ruby_version'
|
42
43
|
autoload :GemSpec, 'synvert/core/rewriter/gem_spec'
|
43
44
|
|
44
45
|
class <<self
|
@@ -185,6 +186,13 @@ module Synvert::Core
|
|
185
186
|
end
|
186
187
|
end
|
187
188
|
|
189
|
+
# Parse if_ruby dal, it checks if ruby version if greater than or equal to the specified ruby version.
|
190
|
+
#
|
191
|
+
# @param version, [String] specified ruby version.
|
192
|
+
def if_ruby(version)
|
193
|
+
@ruby_version = Rewriter::RubyVersion.new(version)
|
194
|
+
end
|
195
|
+
|
188
196
|
# Parse if_gem dsl, it compares version of the specified gem.
|
189
197
|
#
|
190
198
|
# @param name [String] gem name.
|
@@ -202,7 +210,8 @@ module Synvert::Core
|
|
202
210
|
def within_files(file_pattern, &block)
|
203
211
|
return if @sandbox
|
204
212
|
|
205
|
-
if !@
|
213
|
+
if (!@ruby_version || @ruby_version.match?) &&
|
214
|
+
(!@gem_spec || @gem_spec.match?)
|
206
215
|
Rewriter::Instance.new(self, file_pattern, &block).process
|
207
216
|
end
|
208
217
|
end
|
data/lib/synvert/core/version.rb
CHANGED
@@ -10,6 +10,14 @@ module Synvert::Core
|
|
10
10
|
expect(rewriter.description).to eq 'rewriter description'
|
11
11
|
end
|
12
12
|
|
13
|
+
it 'parses if_ruby' do
|
14
|
+
#stub_const("RUBY_VERSION", '2.0.0')
|
15
|
+
rewriter = Rewriter.new 'group', 'name' do
|
16
|
+
if_ruby '2.0.0'
|
17
|
+
end
|
18
|
+
rewriter.process
|
19
|
+
end
|
20
|
+
|
13
21
|
it 'parses if_gem' do
|
14
22
|
expect(Rewriter::GemSpec).to receive(:new).with('synvert', {gte: '1.0.0'})
|
15
23
|
rewriter = Rewriter.new 'group', 'name' do
|
@@ -19,19 +27,31 @@ module Synvert::Core
|
|
19
27
|
end
|
20
28
|
|
21
29
|
describe 'parses within_file' do
|
22
|
-
it 'does nothing if
|
23
|
-
|
30
|
+
it 'does nothing if if_ruby does not match' do
|
31
|
+
stub_const('RUBY_VERSION', '2.0.0')
|
24
32
|
expect_any_instance_of(Rewriter::Instance).not_to receive(:process)
|
25
33
|
rewriter = Rewriter.new 'group', 'name' do
|
26
|
-
|
34
|
+
if_ruby '2.2.3'
|
27
35
|
within_file 'config/routes.rb' do; end
|
28
36
|
end
|
29
37
|
rewriter.process
|
30
38
|
end
|
31
39
|
|
32
|
-
it 'delegates process to instances if
|
40
|
+
it 'delegates process to instances if if_ruby matches' do
|
41
|
+
stub_const('RUBY_VERSION', '2.0.0')
|
33
42
|
expect_any_instance_of(Rewriter::Instance).to receive(:process)
|
34
43
|
rewriter = Rewriter.new 'group', 'name' do
|
44
|
+
if_ruby '1.9.3'
|
45
|
+
within_file 'config/routes.rb' do; end
|
46
|
+
end
|
47
|
+
rewriter.process
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'does nothing if if_gem does not match' do
|
51
|
+
expect_any_instance_of(Rewriter::GemSpec).to receive(:match?).and_return(false)
|
52
|
+
expect_any_instance_of(Rewriter::Instance).not_to receive(:process)
|
53
|
+
rewriter = Rewriter.new 'group', 'name' do
|
54
|
+
if_gem 'synvert', '1.0.0'
|
35
55
|
within_file 'config/routes.rb' do; end
|
36
56
|
end
|
37
57
|
rewriter.process
|
@@ -47,6 +67,14 @@ module Synvert::Core
|
|
47
67
|
rewriter.process
|
48
68
|
end
|
49
69
|
|
70
|
+
it 'delegates process to instances if if_ruby and if_gem do not exist' do
|
71
|
+
expect_any_instance_of(Rewriter::Instance).to receive(:process)
|
72
|
+
rewriter = Rewriter.new 'group', 'name' do
|
73
|
+
within_file 'config/routes.rb' do; end
|
74
|
+
end
|
75
|
+
rewriter.process
|
76
|
+
end
|
77
|
+
|
50
78
|
it 'does nothing in sandbox mode' do
|
51
79
|
expect_any_instance_of(Rewriter::GemSpec).not_to receive(:match?)
|
52
80
|
expect_any_instance_of(Rewriter::Instance).not_to receive(:process)
|
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.
|
4
|
+
version: 0.9.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: 2015-
|
11
|
+
date: 2015-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -159,6 +159,7 @@ files:
|
|
159
159
|
- lib/synvert/core/rewriter/gem_spec.rb
|
160
160
|
- lib/synvert/core/rewriter/helper.rb
|
161
161
|
- lib/synvert/core/rewriter/instance.rb
|
162
|
+
- lib/synvert/core/rewriter/ruby_version.rb
|
162
163
|
- lib/synvert/core/rewriter/scope.rb
|
163
164
|
- lib/synvert/core/rewriter/scope/goto_scope.rb
|
164
165
|
- lib/synvert/core/rewriter/scope/within_scope.rb
|
@@ -209,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
210
|
version: '0'
|
210
211
|
requirements: []
|
211
212
|
rubyforge_project:
|
212
|
-
rubygems_version: 2.4.5
|
213
|
+
rubygems_version: 2.4.5.1
|
213
214
|
signing_key:
|
214
215
|
specification_version: 4
|
215
216
|
summary: convert ruby code to better syntax.
|