synvert-core 0.56.0 → 0.56.1
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 +5 -0
- data/lib/synvert/core/rewriter/action/delete_action.rb +1 -5
- data/lib/synvert/core/rewriter/action/remove_action.rb +4 -6
- data/lib/synvert/core/rewriter/action.rb +26 -0
- data/lib/synvert/core/rewriter/ruby_version.rb +10 -2
- data/lib/synvert/core/rewriter.rb +1 -1
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/rewriter/ruby_version_spec.rb +5 -0
- data/spec/synvert/core/rewriter_spec.rb +4 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e60611e972f774c97a102f5db6bc171b024cb48aa4dcc94dd07e9de6d25506a2
|
4
|
+
data.tar.gz: 2a7f4da54b1ed5caeb7fea49dd07ca1cc9fad1aceef082d223e420b928825bb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2fa37ef33a1ec38afbf094715b239c46e35e92aa386f5fae635be4419da964a8543f07df36c4321408b9a5d80a9a252d68674ccb9040865191d0299d9775667
|
7
|
+
data.tar.gz: a31385980557ef6c6031365f1554c5e957e6933b3aaaa65d902011dc3920599c8d24ae80bde55227f36643ebcc6808ee55ff2f028ca4c92cab94eeb04e606413
|
data/CHANGELOG.md
CHANGED
@@ -13,11 +13,7 @@ module Synvert::Core
|
|
13
13
|
# @return [Integer] begin position.
|
14
14
|
def begin_pos
|
15
15
|
pos = @selectors.map { |selector| @node.child_node_range(selector) }.compact.map(&:begin_pos).min
|
16
|
-
|
17
|
-
pos - 1
|
18
|
-
else
|
19
|
-
pos
|
20
|
-
end
|
16
|
+
squeeze_spaces(pos, end_pos)
|
21
17
|
end
|
22
18
|
|
23
19
|
# End position of code to delete.
|
@@ -14,7 +14,8 @@ module Synvert::Core
|
|
14
14
|
if take_whole_line?
|
15
15
|
start_index
|
16
16
|
else
|
17
|
-
@node.loc.expression.begin_pos
|
17
|
+
pos = @node.loc.expression.begin_pos
|
18
|
+
squeeze_spaces(pos, end_pos)
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
@@ -47,11 +48,8 @@ module Synvert::Core
|
|
47
48
|
|
48
49
|
def end_index
|
49
50
|
index = file_source[@node.loc.expression.end_pos..-1].index("\n")
|
50
|
-
index ? @node.loc.expression.end_pos + index + "\n".length : @node.loc.expression.end_pos
|
51
|
-
|
52
|
-
|
53
|
-
def file_source
|
54
|
-
@file_source ||= @instance.file_source
|
51
|
+
pos = index ? @node.loc.expression.end_pos + index + "\n".length : @node.loc.expression.end_pos
|
52
|
+
squeeze_lines(pos, @node.loc.expression.first_line, @node.loc.expression.last_line)
|
55
53
|
end
|
56
54
|
end
|
57
55
|
end
|
@@ -33,11 +33,37 @@ module Synvert::Core
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
protected
|
37
|
+
|
36
38
|
# The rewritten source code.
|
37
39
|
#
|
38
40
|
# @return [String] rewritten source code.
|
39
41
|
def rewritten_source
|
40
42
|
@rewritten_source ||= @node.rewritten_source(@code)
|
41
43
|
end
|
44
|
+
|
45
|
+
def squeeze_spaces(begin_pos, end_pos)
|
46
|
+
if file_source[begin_pos - 1] == ' ' && file_source[end_pos] == ' '
|
47
|
+
begin_pos - 1
|
48
|
+
else
|
49
|
+
begin_pos
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def squeeze_lines(end_pos, begin_line, end_line)
|
54
|
+
lines = file_source.split("\n")
|
55
|
+
before_line_is_blank = begin_line == 1 || lines[begin_line - 2] == ''
|
56
|
+
after_line_is_blank = lines[end_line] == ''
|
57
|
+
|
58
|
+
if before_line_is_blank && after_line_is_blank
|
59
|
+
end_pos + "\n".length
|
60
|
+
else
|
61
|
+
end_pos
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def file_source
|
66
|
+
@file_source ||= @instance.file_source
|
67
|
+
end
|
42
68
|
end
|
43
69
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Synvert::Core
|
4
|
-
# GemSpec checks and compares
|
4
|
+
# GemSpec checks and compares ruby version.
|
5
5
|
class Rewriter::RubyVersion
|
6
6
|
attr_reader :version
|
7
7
|
|
@@ -16,7 +16,15 @@ module Synvert::Core
|
|
16
16
|
#
|
17
17
|
# @return [Boolean] true if matches, otherwise false.
|
18
18
|
def match?
|
19
|
-
|
19
|
+
if File.exist?(File.join(Configuration.path, '.ruby-version'))
|
20
|
+
versionFile = '.ruby-version'
|
21
|
+
elsif File.exist?(File.join(Configuration.path, '.rvmrc'))
|
22
|
+
versionFile = '.rvmrc'
|
23
|
+
end
|
24
|
+
return true if !versionFile
|
25
|
+
|
26
|
+
version = File.read(File.join(Configuration.path, versionFile))
|
27
|
+
Gem::Version.new(version) >= Gem::Version.new(@version)
|
20
28
|
end
|
21
29
|
end
|
22
30
|
end
|
@@ -213,7 +213,7 @@ module Synvert::Core
|
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
216
|
-
# Parse if_ruby
|
216
|
+
# Parse if_ruby dsl, it checks if ruby version if greater than or equal to the specified ruby version.
|
217
217
|
#
|
218
218
|
# @param version, [String] specified ruby version.
|
219
219
|
def if_ruby(version)
|
data/lib/synvert/core/version.rb
CHANGED
@@ -4,6 +4,11 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
module Synvert::Core
|
6
6
|
describe Rewriter::RubyVersion do
|
7
|
+
before do
|
8
|
+
expect(File).to receive(:exist?).with('./.ruby-version').and_return(true)
|
9
|
+
expect(File).to receive(:read).with('./.ruby-version').and_return('3.0.0')
|
10
|
+
end
|
11
|
+
|
7
12
|
it 'returns true if ruby version is greater than 1.9' do
|
8
13
|
ruby_version = Rewriter::RubyVersion.new('1.9')
|
9
14
|
expect(ruby_version).to be_match
|
@@ -39,7 +39,8 @@ module Synvert::Core
|
|
39
39
|
|
40
40
|
describe 'parses within_file' do
|
41
41
|
it 'does nothing if if_ruby does not match' do
|
42
|
-
|
42
|
+
expect(File).to receive(:exist?).with('./.ruby-version').and_return(true)
|
43
|
+
expect(File).to receive(:read).with('./.ruby-version').and_return('2.0.0')
|
43
44
|
expect_any_instance_of(Rewriter::Instance).not_to receive(:process)
|
44
45
|
rewriter =
|
45
46
|
Rewriter.new 'group', 'name' do
|
@@ -51,7 +52,8 @@ module Synvert::Core
|
|
51
52
|
end
|
52
53
|
|
53
54
|
it 'delegates process to instances if if_ruby matches' do
|
54
|
-
|
55
|
+
expect(File).to receive(:exist?).with('./.ruby-version').and_return(true)
|
56
|
+
expect(File).to receive(:read).with('./.ruby-version').and_return('2.0.0')
|
55
57
|
expect_any_instance_of(Rewriter::Instance).to receive(:process)
|
56
58
|
rewriter =
|
57
59
|
Rewriter.new 'group', 'name' do
|
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.56.
|
4
|
+
version: 0.56.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|