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 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.