unparser 0.4.5 → 0.4.6

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: ce1de83bf10221446d1c5f7a5925dfd3df7022d51342678b5fd9eb0f2f1fbcce
4
- data.tar.gz: '083da9ef8026a9afd957b3585e8915f379c126745f8c7863ae0c896258cd31db'
3
+ metadata.gz: e7b6ae43ecab2e1b02ad4688d19015cb19930b66c7c72b0d84603696a3bdd6a6
4
+ data.tar.gz: 21b9230570b7a1124c070b35c58c1704c3640d54581b07003fc9400b18a8f4ca
5
5
  SHA512:
6
- metadata.gz: dafb7bb7320e6b238e52f92f5e31257f53309b276c4693238550459a1c4bb5d8c16ee616d2a5bc8262254c7796705b63ef1e18f0d3b59f8db8423460e0119371
7
- data.tar.gz: 6af30e50074a3ed71557a7bb8f078bf6509bcf2adf8c5ceaf641a1e862a39ed021da672a9bcb29d8e2925b7769f9152a32050eb6adef52fb7b7933bded06ac0b
6
+ metadata.gz: 580f2639ae9a1bfe704be90ed16c390d6151bbfaf19644f84aa31012bb896a6e763cfc4e24573674df92c4329f68e3303e381ffa02097c818e66e6f42a28d2c2
7
+ data.tar.gz: 1bb2d10d2fa4f30e7b18ebe880d80e22b21e4fdf325518d3b9b65f2c2ec2f456307f74502a22399bad75f90a9ba26500ae553affd8ab71b126b9198a5cf15269
@@ -30,7 +30,15 @@ jobs:
30
30
  steps:
31
31
  - checkout
32
32
  - run: bundle install
33
- - run: bundle exec mutant --since origin/master --zombie -- 'Unparser*'
33
+ - run: |
34
+ bundle \
35
+ exec \
36
+ mutant \
37
+ --ignore-subject 'Unparser::AST::LocalVariableScope*' \
38
+ --since origin/master \
39
+ --zombie \
40
+ -- \
41
+ 'Unparser*'
34
42
  workflows:
35
43
  version: 2
36
44
  test:
@@ -1,3 +1,7 @@
1
+ # v0.4.6 2020-01-02
2
+
3
+ * Upgrades to allow parser dependency to ~> 2.6.5
4
+
1
5
  # v0.4.5 2019-05-10
2
6
 
3
7
  * Bump parser dependency to ~> 2.6.3
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
6
 
7
- gem 'mutant', git: 'https://github.com/mbj/mutant.git'
7
+ gem 'mutant', git: 'https://github.com/mbj/mutant.git', branch: 'upgrade/parser'
8
8
 
9
9
  source 'https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev' do
10
10
  gem 'mutant-license'
@@ -1,8 +1,9 @@
1
1
  GIT
2
2
  remote: https://github.com/mbj/mutant.git
3
- revision: e07953eeb3a011d9c3496d6594fed263375fec59
3
+ revision: f138cc7b16ed6dab728ef2e2f46731754086b9e8
4
+ branch: upgrade/parser
4
5
  specs:
5
- mutant (0.8.25)
6
+ mutant (0.9.1)
6
7
  abstract_type (~> 0.0.7)
7
8
  adamantium (~> 0.2.0)
8
9
  anima (~> 0.3.1)
@@ -12,24 +13,21 @@ GIT
12
13
  equalizer (~> 0.0.9)
13
14
  ice_nine (~> 0.11.1)
14
15
  memoizable (~> 0.4.2)
15
- mutant-license (~> 0.0.1)
16
- parser (~> 2.6.0)
16
+ mutant-license (~> 0.1.0)
17
+ parser (~> 2.6.5)
17
18
  procto (~> 0.0.2)
18
- unparser (~> 0.4.3)
19
- mutant-rspec (0.8.25)
20
- mutant (~> 0.8.25)
21
- rspec-core (>= 3.8.0, < 4.0.0)
19
+ unparser (~> 0.4.5)
22
20
 
23
21
  PATH
24
22
  remote: .
25
23
  specs:
26
- unparser (0.4.4)
24
+ unparser (0.4.6)
27
25
  abstract_type (~> 0.0.7)
28
26
  adamantium (~> 0.2.0)
29
27
  concord (~> 0.1.5)
30
28
  diff-lcs (~> 1.3)
31
29
  equalizer (~> 0.0.9)
32
- parser (~> 2.6.3)
30
+ parser (~> 2.6.5)
33
31
  procto (~> 0.0.2)
34
32
 
35
33
  GEM
@@ -58,15 +56,13 @@ GEM
58
56
  equalizer (~> 0.0.9)
59
57
  descendants_tracker (0.0.4)
60
58
  thread_safe (~> 0.3, >= 0.3.1)
61
- devtools (0.1.23)
59
+ devtools (0.1.24)
62
60
  abstract_type (~> 0.0.7)
63
61
  adamantium (~> 0.2.0)
64
62
  anima (~> 0.3.0)
65
63
  concord (~> 0.1.5)
66
64
  flay (~> 2.12.0)
67
65
  flog (~> 4.6.2)
68
- mutant (~> 0.8.24)
69
- mutant-rspec (~> 0.8.24)
70
66
  procto (~> 0.0.3)
71
67
  rake (~> 12.3.0)
72
68
  reek (~> 5.3.0)
@@ -78,21 +74,21 @@ GEM
78
74
  yard (~> 0.9.16)
79
75
  yardstick (~> 0.9.9)
80
76
  diff-lcs (1.3)
81
- docile (1.3.1)
77
+ docile (1.3.2)
82
78
  equalizer (0.0.11)
83
79
  erubis (2.7.0)
84
- flay (2.12.0)
80
+ flay (2.12.1)
85
81
  erubis (~> 2.7.0)
86
82
  path_expander (~> 1.0)
87
83
  ruby_parser (~> 3.0)
88
84
  sexp_processor (~> 4.0)
89
- flog (4.6.2)
85
+ flog (4.6.4)
90
86
  path_expander (~> 1.0)
91
87
  ruby_parser (~> 3.1, > 3.1.0)
92
88
  sexp_processor (~> 4.8)
93
89
  ice_nine (0.11.2)
94
- jaro_winkler (1.5.2)
95
- json (2.2.0)
90
+ jaro_winkler (1.5.4)
91
+ json (2.3.0)
96
92
  kwalify (0.7.2)
97
93
  memoizable (0.4.2)
98
94
  thread_safe (~> 0.3, >= 0.3.1)
@@ -105,16 +101,16 @@ GEM
105
101
  equalizer (~> 0.0.9)
106
102
  ice_nine (~> 0.11.0)
107
103
  procto (~> 0.0.2)
108
- mutant-license (0.0.1)
109
- parallel (1.17.0)
110
- parser (2.6.3.0)
104
+ mutant-license (0.1.0)
105
+ parallel (1.19.1)
106
+ parser (2.6.5.0)
111
107
  ast (~> 2.4.0)
112
- path_expander (1.0.3)
108
+ path_expander (1.1.0)
113
109
  powerpack (0.1.2)
114
110
  procto (0.0.3)
115
111
  psych (3.1.0)
116
112
  rainbow (3.0.0)
117
- rake (12.3.2)
113
+ rake (12.3.3)
118
114
  reek (5.3.2)
119
115
  codeclimate-engine-rb (~> 0.4.0)
120
116
  kwalify (~> 0.7.0)
@@ -125,18 +121,18 @@ GEM
125
121
  rspec-core (~> 3.8.0)
126
122
  rspec-expectations (~> 3.8.0)
127
123
  rspec-mocks (~> 3.8.0)
128
- rspec-core (3.8.0)
124
+ rspec-core (3.8.2)
129
125
  rspec-support (~> 3.8.0)
130
- rspec-expectations (3.8.3)
126
+ rspec-expectations (3.8.6)
131
127
  diff-lcs (>= 1.2.0, < 2.0)
132
128
  rspec-support (~> 3.8.0)
133
129
  rspec-its (1.2.0)
134
130
  rspec-core (>= 3.0.0)
135
131
  rspec-expectations (>= 3.0.0)
136
- rspec-mocks (3.8.0)
132
+ rspec-mocks (3.8.2)
137
133
  diff-lcs (>= 1.2.0, < 2.0)
138
134
  rspec-support (~> 3.8.0)
139
- rspec-support (3.8.0)
135
+ rspec-support (3.8.3)
140
136
  rubocop (0.61.1)
141
137
  jaro_winkler (~> 1.5.1)
142
138
  parallel (~> 1.10)
@@ -145,10 +141,10 @@ GEM
145
141
  rainbow (>= 2.2.2, < 4.0)
146
142
  ruby-progressbar (~> 1.7)
147
143
  unicode-display_width (~> 1.4.0)
148
- ruby-progressbar (1.10.0)
149
- ruby_parser (3.13.1)
144
+ ruby-progressbar (1.10.1)
145
+ ruby_parser (3.14.1)
150
146
  sexp_processor (~> 4.9)
151
- sexp_processor (4.12.0)
147
+ sexp_processor (4.13.0)
152
148
  simplecov (0.16.1)
153
149
  docile (~> 1.1)
154
150
  json (>= 1.8, < 3)
@@ -161,7 +157,7 @@ GEM
161
157
  coercible (~> 1.0)
162
158
  descendants_tracker (~> 0.0, >= 0.0.3)
163
159
  equalizer (~> 0.0, >= 0.0.9)
164
- yard (0.9.19)
160
+ yard (0.9.22)
165
161
  yardstick (0.9.9)
166
162
  yard (~> 0.8, >= 0.8.7.2)
167
163
 
data/README.md CHANGED
@@ -1,9 +1,8 @@
1
1
  unparser
2
2
  ========
3
3
 
4
- [![Build Status](https://secure.travis-ci.org/mbj/unparser.png?branch=master)](http://travis-ci.org/mbj/unparser)
5
- [![Dependency Status](https://gemnasium.com/mbj/unparser.png)](https://gemnasium.com/mbj/unparser)
6
- [![Code Climate](https://codeclimate.com/github/mbj/unparser.png)](https://codeclimate.com/github/mbj/unparser)
4
+ [![Build Status](https://secure.travis-ci.org/mbj/unparser.svg?branch=master)](http://travis-ci.org/mbj/unparser)
5
+ [![Code Climate](https://codeclimate.com/github/mbj/unparser.svg)](https://codeclimate.com/github/mbj/unparser)
7
6
  [![Gem Version](https://img.shields.io/gem/v/unparser.svg)](https://rubygems.org/gems/unparser)
8
7
 
9
8
  Generate equivalent source for ASTs from whitequarks [parser](https://github.com/whitequark/parser).
@@ -1,3 +1,3 @@
1
1
  ---
2
2
  threshold: 13
3
- total_score: 645
3
+ total_score: 644
@@ -50,7 +50,7 @@ module Unparser
50
50
 
51
51
  # Return local variables that get assigned in scope
52
52
  #
53
- # @param [Parser::AST::Node]
53
+ # @param [Parser::AST::Node] node
54
54
  #
55
55
  # @return [Set<Symbol>]
56
56
  #
@@ -56,8 +56,8 @@ module Unparser
56
56
 
57
57
  # Test if local variables where first assigned in body and read by conditional
58
58
  #
59
- # @param [Parser::AST::Node] conditional
60
59
  # @param [Parser::AST::Node] body
60
+ # @param [Parser::AST::Node] condition
61
61
  #
62
62
  # @api private
63
63
  #
@@ -78,16 +78,16 @@ module Unparser
78
78
 
79
79
  # Match node
80
80
  #
81
- # @param [Parser::AST::Node] node
81
+ # @param [Parser::AST::Node] needle
82
82
  # if block given
83
83
  #
84
84
  # @return [Boolean]
85
85
  #
86
86
  # @api private
87
87
  #
88
- def match(neddle)
88
+ def match(needle)
89
89
  @items.each do |node, current, before|
90
- return yield(current, before) if node.equal?(neddle)
90
+ return yield(current, before) if node.equal?(needle)
91
91
  end
92
92
  false
93
93
  end
@@ -149,7 +149,7 @@ module Unparser
149
149
 
150
150
  # Visit node and record local variable state
151
151
  #
152
- # @param [Parser::AST::Node]
152
+ # @param [Parser::AST::Node] node
153
153
  #
154
154
  # @return [undefined]
155
155
  #
@@ -168,7 +168,7 @@ module Unparser
168
168
 
169
169
  # Record local variable state
170
170
  #
171
- # @param [Parser::AST::Node]
171
+ # @param [Parser::AST::Node] node
172
172
  #
173
173
  # @return [undefined]
174
174
  #
@@ -108,7 +108,7 @@ module Unparser
108
108
 
109
109
  # Process source
110
110
  #
111
- # @param [CLI::Source]
111
+ # @param [CLI::Source] source
112
112
  #
113
113
  # @return [undefined]
114
114
  #
@@ -24,7 +24,7 @@ module Unparser
24
24
 
25
25
  # Build generated source
26
26
  #
27
- # @param [Parser::AST::Node]
27
+ # @param [Parser::AST::Node] ast
28
28
  #
29
29
  # @api private
30
30
  #
@@ -82,7 +82,7 @@ module Unparser
82
82
 
83
83
  # Return stripped source
84
84
  #
85
- # @param [String] string
85
+ # @param [String] source
86
86
  #
87
87
  # @return [String]
88
88
  #
@@ -11,7 +11,7 @@ module Unparser
11
11
 
12
12
  # Return frozen symbol set from enumerable
13
13
  #
14
- # @param [Enumerable]
14
+ # @param [Enumerable] enumerable
15
15
  #
16
16
  # @return [Set<Symbol>]
17
17
  #
@@ -45,7 +45,7 @@ module Unparser
45
45
  #
46
46
  # @return [undefined]
47
47
  #
48
- # @pai private
48
+ # @api private
49
49
  #
50
50
  def define_group(name, range)
51
51
  define_method(name) do
@@ -79,7 +79,7 @@ module Unparser
79
79
 
80
80
  # Register emitter for type
81
81
  #
82
- # @param [Symbol] type
82
+ # @param [Symbol] types
83
83
  #
84
84
  # @return [undefined]
85
85
  #
@@ -249,7 +249,6 @@ module Unparser
249
249
  # Emit delimited body
250
250
  #
251
251
  # @param [Enumerable<Parser::AST::Node>] nodes
252
- # @param [String] delimiter
253
252
  #
254
253
  # @return [undefined]
255
254
  #
@@ -262,7 +261,6 @@ module Unparser
262
261
  # Emit delimited body
263
262
  #
264
263
  # @param [Enumerable<Parser::AST::Node>] nodes
265
- # @param [String] delimiter
266
264
  #
267
265
  # @return [undefined]
268
266
  #
@@ -432,7 +430,7 @@ module Unparser
432
430
 
433
431
  # Emit non nil body
434
432
  #
435
- # @param [Parser::AST::Node] node
433
+ # @param [Parser::AST::Node] body
436
434
  #
437
435
  # @return [undefined]
438
436
  #
@@ -240,7 +240,7 @@ module Unparser
240
240
 
241
241
  handle :procarg0
242
242
 
243
- children :first_argument
243
+ PARENS = %i[restarg mlhs].freeze
244
244
 
245
245
  private
246
246
 
@@ -251,22 +251,18 @@ module Unparser
251
251
  # @api private
252
252
  #
253
253
  def dispatch
254
- if first_argument.instance_of?(Symbol)
255
- write(first_argument.to_s)
254
+ if needs_parens?
255
+ parentheses do
256
+ delimited(children)
257
+ end
256
258
  else
257
- emit_multiple_children
259
+ delimited(children)
258
260
  end
259
261
  end
260
262
 
261
- # Emit multiple children
262
- #
263
- # @return [undefined]
264
- #
265
- # @api private
266
- #
267
- def emit_multiple_children
268
- parentheses do
269
- delimited(children)
263
+ def needs_parens?
264
+ children.length > 1 || children.any? do |node|
265
+ PARENS.include?(node.type)
270
266
  end
271
267
  end
272
268
  end
@@ -107,7 +107,7 @@ module Unparser
107
107
 
108
108
  # Write rational format
109
109
  #
110
- # @param [#to_s]
110
+ # @param [#to_s] value
111
111
  #
112
112
  # @return [undefined]
113
113
  #
@@ -5,7 +5,8 @@ module Unparser
5
5
 
6
6
  # Helper for building nodes
7
7
  #
8
- # @param [Symbol]
8
+ # @param [Symbol] type
9
+ # @param [Parser::AST::Node] children
9
10
  #
10
11
  # @return [Parser::AST::Node]
11
12
  #
@@ -19,9 +20,10 @@ module Unparser
19
20
 
20
21
  # Helper for building nodes
21
22
  #
22
- # @param [Symbol]
23
+ # @param [Symbol] type
23
24
  #
24
25
  # @return [Parser::AST::Node]
26
+ # @param [Array] children
25
27
  #
26
28
  # @api private
27
29
  #
@@ -114,7 +114,7 @@ module Unparser
114
114
 
115
115
  # Return preprocessor result
116
116
  #
117
- # @param [Parser::AST::Node]
117
+ # @return [Parser::AST::Node]
118
118
  #
119
119
  # @api private
120
120
  #
@@ -40,10 +40,12 @@
40
40
  - core/env/element_reference_spec.rb
41
41
  - core/io/readpartial_spec.rb
42
42
  - core/io/shared/gets_ascii.rb
43
+ - core/kernel/shared/sprintf_encoding.rb
43
44
  - core/marshal/dump_spec.rb
44
45
  - core/marshal/fixtures/marshal_data.rb
45
46
  - core/marshal/shared/load.rb
46
47
  - core/random/bytes_spec.rb
48
+ - core/regexp/shared/new.rb
47
49
  - core/regexp/shared/new_ascii.rb
48
50
  - core/regexp/shared/new_ascii_8bit.rb
49
51
  - core/regexp/shared/quote.rb
@@ -51,6 +53,8 @@
51
53
  - core/string/casecmp_spec.rb
52
54
  - core/string/codepoints_spec.rb
53
55
  - core/string/count_spec.rb
56
+ - core/string/encode_spec.rb
57
+ - core/string/inspect_spec.rb
54
58
  - core/string/shared/codepoints.rb
55
59
  - core/string/shared/each_codepoint_without_block.rb
56
60
  - core/string/shared/eql.rb
@@ -71,6 +75,7 @@
71
75
  - language/regexp/escapes_spec.rb
72
76
  - language/source_encoding_spec.rb
73
77
  - language/string_spec.rb
78
+ - library/base64/decode64_spec.rb
74
79
  - library/digest/md5/shared/constants.rb
75
80
  - library/digest/md5/shared/sample.rb
76
81
  - library/digest/sha1/shared/constants.rb
@@ -547,12 +547,6 @@ describe Unparser, mutant_expression: 'Unparser::Emitter*' do
547
547
  foo.bar(*args)
548
548
  RUBY
549
549
 
550
- assert_source <<~'RUBY'
551
- foo.bar do |(a)|
552
- d
553
- end
554
- RUBY
555
-
556
550
  assert_source <<~'RUBY'
557
551
  foo.bar do |(a, b), c|
558
552
  d
@@ -574,6 +568,18 @@ describe Unparser, mutant_expression: 'Unparser::Emitter*' do
574
568
  end
575
569
  RUBY
576
570
 
571
+ assert_source <<~'RUBY'
572
+ foo.bar do |*|
573
+ d
574
+ end
575
+ RUBY
576
+
577
+ assert_source <<~'RUBY'
578
+ foo.bar do |(*)|
579
+ d
580
+ end
581
+ RUBY
582
+
577
583
  assert_source <<~'RUBY'
578
584
  foo.bar do |((*))|
579
585
  d
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'unparser'
3
- gem.version = '0.4.5'
3
+ gem.version = '0.4.6'
4
4
 
5
5
  gem.authors = ['Markus Schirp']
6
6
  gem.email = 'mbj@schirp-dso.com'
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
21
21
  gem.add_dependency('equalizer', '~> 0.0.9')
22
22
  gem.add_dependency('diff-lcs', '~> 1.3')
23
23
  gem.add_dependency('concord', '~> 0.1.5')
24
- gem.add_dependency('parser', '~> 2.6.3')
24
+ gem.add_dependency('parser', '~> 2.6.5')
25
25
  gem.add_dependency('procto', '~> 0.0.2')
26
26
 
27
27
  gem.add_development_dependency('anima', '~> 0.3.1')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unparser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-10 00:00:00.000000000 Z
11
+ date: 2020-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: abstract_type
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.6.3
89
+ version: 2.6.5
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.6.3
96
+ version: 2.6.5
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: procto
99
99
  requirement: !ruby/object:Gem::Requirement