synvert-core 0.8.2 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50629c1df6f1807a908e29168151ce28b9aad353
4
- data.tar.gz: 95c03ecdfc6097da06f34102d6e99ab5ca76929d
3
+ metadata.gz: 7e22816d20d86721074e337cb21835d2d511aca1
4
+ data.tar.gz: 9b29d40275b347297b50a30facd15e3a5c766693
5
5
  SHA512:
6
- metadata.gz: 5023594501e0f72371ba9857649893c109fc682fc4235692bdd9e8e79291453533c6b41c46e9d8d93fd7af2823e3c94fcae599d24a1b5ca2f820b48e63262b5a
7
- data.tar.gz: 86905f7dfe07be1fba1274759d8c9efc217c9cf6dd59b2e81861eee79a2f89ee1f0efe6a3adc483540743e9cac8f9e9212f11630e067525a8353b54689dce1d3
6
+ metadata.gz: 78bc7c57442b48eb5814ef6433cd82b819a98d13c10b714879d41895274fd0bb62a5b3a8e6d8ce21c2acff8565caddf0a4f2ab8946cad4eede82a93837df459b
7
+ data.tar.gz: 54ab3b4ea2d3ea576dc4bf95f84ce93a476ec253b32857ec7556e8dabaf3a58b189be316432c733e33a5aa0ceb06b09760be9f8cf06bedd8d4756d9e63a44a47
data/CHANGELOG.md CHANGED
@@ -1,11 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
- ## 0.8.2
3
+ ## 0.9.0 (2015-12-23)
4
4
 
5
+ * Add if_ruby dsl
5
6
  * Fix rewritten indent when number of lines and arguments are equal
6
-
7
- ## 0.8.1
8
-
9
7
  * Fix match_value between symbol and string
10
8
 
11
9
  ## 0.8.0 (2014-10-26)
@@ -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 !@gem_spec || @gem_spec.match?
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = "0.8.2"
5
+ VERSION = "0.9.0"
6
6
  end
7
7
  end
@@ -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 if_gem not match' do
23
- expect_any_instance_of(Rewriter::GemSpec).to receive(:match?).and_return(false)
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
- if_gem 'synvert', '1.0.0'
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 if_gem not exist' do
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.8.2
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-04-01 00:00:00.000000000 Z
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.