synvert-core 0.15.1 → 0.15.2
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2aaa8ceb8c8b0961d58714137b5022acbd369cc610e7a38b6da928cbb7ba86c
|
4
|
+
data.tar.gz: b7fe630b61237f937e4f0b81382a2b2794facf68c93f0c0f98ce58d96b251874
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ec722e6324794f00fe7152aadb17e02532b654f6a00a15f08c0fd4b0569fd722cea3a9328e5ed2fa2d8c07fc7c2ad263dd44f78970e9eac7e5db8aac9e1dfac
|
7
|
+
data.tar.gz: 0b0ef0c5ec24954255ee2d1e5e1c6537571d51fbfeedd0999b3d2ee00d70cdc2b231d96626077793ab0614c78896c494d3e177541e28d3c387bbc524336294c1
|
@@ -4,6 +4,7 @@ module Synvert::Core
|
|
4
4
|
# Action defines rewriter action, add, replace or remove code.
|
5
5
|
class Rewriter::Action
|
6
6
|
DEFAULT_OPTIONS = { autoindent: true }
|
7
|
+
DEFAULT_INDENT = 2
|
7
8
|
|
8
9
|
# Initialize an action.
|
9
10
|
#
|
@@ -45,4 +46,3 @@ module Synvert::Core
|
|
45
46
|
end
|
46
47
|
end
|
47
48
|
end
|
48
|
-
|
@@ -1,8 +1,10 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
module Synvert::Core
|
4
|
-
#
|
4
|
+
# AppendAction to append code to the bottom of node body.
|
5
5
|
class Rewriter::AppendAction < Rewriter::Action
|
6
|
+
END_LENGTH = "\nend".length
|
7
|
+
|
6
8
|
# Begin position to append code.
|
7
9
|
#
|
8
10
|
# @return [Integer] begin position.
|
@@ -10,7 +12,7 @@ module Synvert::Core
|
|
10
12
|
if :begin == @node.type
|
11
13
|
@node.loc.expression.end_pos
|
12
14
|
else
|
13
|
-
@node.loc.expression.end_pos - @node.indent -
|
15
|
+
@node.loc.expression.end_pos - @node.indent - END_LENGTH
|
14
16
|
end
|
15
17
|
end
|
16
18
|
|
@@ -29,7 +31,7 @@ module Synvert::Core
|
|
29
31
|
# @return [String] n times whitesphace
|
30
32
|
def indent(node)
|
31
33
|
if [:block, :class].include? node.type
|
32
|
-
' ' * (node.indent +
|
34
|
+
' ' * (node.indent + DEFAULT_INDENT)
|
33
35
|
else
|
34
36
|
' ' * node.indent
|
35
37
|
end
|
@@ -3,11 +3,20 @@
|
|
3
3
|
module Synvert::Core
|
4
4
|
# InsertAction to insert code to the top of node body.
|
5
5
|
class Rewriter::InsertAction < Rewriter::Action
|
6
|
+
DO_LENGTH = " do".length
|
7
|
+
|
6
8
|
# Begin position to insert code.
|
7
9
|
#
|
8
10
|
# @return [Integer] begin position.
|
9
11
|
def begin_pos
|
10
|
-
|
12
|
+
case @node.type
|
13
|
+
when :block
|
14
|
+
@node.children[1].children.empty? ? @node.children[0].loc.expression.end_pos + DO_LENGTH : @node.children[1].loc.expression.end_pos
|
15
|
+
when :class
|
16
|
+
@node.children[1] ? @node.children[1].loc.expression.end_pos : @node.children[0].loc.expression.end_pos
|
17
|
+
else
|
18
|
+
@node.children.last.loc.expression.end_pos
|
19
|
+
end
|
11
20
|
end
|
12
21
|
|
13
22
|
# End position, always same to begin position.
|
@@ -19,27 +28,13 @@ module Synvert::Core
|
|
19
28
|
|
20
29
|
private
|
21
30
|
|
22
|
-
# Insert position.
|
23
|
-
#
|
24
|
-
# @return [Integer] insert position.
|
25
|
-
def insert_position(node)
|
26
|
-
case node.type
|
27
|
-
when :block
|
28
|
-
node.children[1].children.empty? ? node.children[0].loc.expression.end_pos + 3 : node.children[1].loc.expression.end_pos
|
29
|
-
when :class
|
30
|
-
node.children[1] ? node.children[1].loc.expression.end_pos : node.children[0].loc.expression.end_pos
|
31
|
-
else
|
32
|
-
node.children.last.loc.expression.end_pos
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
31
|
# Indent of the node.
|
37
32
|
#
|
38
33
|
# @param node [Parser::AST::Node]
|
39
34
|
# @return [String] n times whitesphace
|
40
35
|
def indent(node)
|
41
36
|
if [:block, :class].include? node.type
|
42
|
-
' ' * (node.indent +
|
37
|
+
' ' * (node.indent + DEFAULT_INDENT)
|
43
38
|
else
|
44
39
|
' ' * node.indent
|
45
40
|
end
|
data/lib/synvert/core/version.rb
CHANGED
data/synvert-core.gemspec
CHANGED
@@ -18,11 +18,11 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency "parser", "~>
|
21
|
+
spec.add_runtime_dependency "parser", "~> 3.0.0"
|
22
22
|
spec.add_runtime_dependency "activesupport"
|
23
23
|
spec.add_runtime_dependency "erubis"
|
24
24
|
|
25
|
-
spec.add_development_dependency "bundler"
|
25
|
+
spec.add_development_dependency "bundler"
|
26
26
|
spec.add_development_dependency "rake"
|
27
27
|
spec.add_development_dependency "rspec"
|
28
28
|
spec.add_development_dependency "guard"
|
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.15.
|
4
|
+
version: 0.15.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parser
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,7 +194,7 @@ homepage: https://github.com/xinminlabs/synvert-core
|
|
194
194
|
licenses:
|
195
195
|
- MIT
|
196
196
|
metadata: {}
|
197
|
-
post_install_message:
|
197
|
+
post_install_message:
|
198
198
|
rdoc_options: []
|
199
199
|
require_paths:
|
200
200
|
- lib
|
@@ -209,8 +209,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
209
|
- !ruby/object:Gem::Version
|
210
210
|
version: '0'
|
211
211
|
requirements: []
|
212
|
-
rubygems_version: 3.
|
213
|
-
signing_key:
|
212
|
+
rubygems_version: 3.1.4
|
213
|
+
signing_key:
|
214
214
|
specification_version: 4
|
215
215
|
summary: convert ruby code to better syntax.
|
216
216
|
test_files:
|