synvert-core 0.15.1 → 0.15.2

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
  SHA256:
3
- metadata.gz: 991ca9778419ac8a11db3c9828322a98538168b99ef4771a92db7ac97b472f8d
4
- data.tar.gz: 863462dccb67e99f09663630450004468dbb2278831cb21e6a1c9f4231498885
3
+ metadata.gz: d2aaa8ceb8c8b0961d58714137b5022acbd369cc610e7a38b6da928cbb7ba86c
4
+ data.tar.gz: b7fe630b61237f937e4f0b81382a2b2794facf68c93f0c0f98ce58d96b251874
5
5
  SHA512:
6
- metadata.gz: c452bfc0e989411e73ddaeeadf99d2929d9218ab7ff19ea2e54acbcc700b3a453fee082b3b0098b600860d1c398a2125c5edfffe8c4238f7d30df0f16324786e
7
- data.tar.gz: 31c1e7290e440e4dca4b6e16af84bc4c61f41203e256d4fff10c4543cb82ab4cb6e15a251e7747bde41a2b9823945bf98aa77d00f5df6abc66ff84aacb05f3cd
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
- # AppendWithAction to append code to the bottom of node body.
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 - 4
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 + 2)
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
- insert_position(@node)
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 + 2)
37
+ ' ' * (node.indent + DEFAULT_INDENT)
43
38
  else
44
39
  ' ' * node.indent
45
40
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = "0.15.1"
5
+ VERSION = "0.15.2"
6
6
  end
7
7
  end
@@ -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", "~> 2.6.5"
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", "~> 1.6"
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.1
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: 2019-10-11 00:00:00.000000000 Z
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: 2.6.5
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: 2.6.5
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: '1.6'
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: '1.6'
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.0.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: