unparser 0.6.13 → 0.6.15

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: aa5ab956c61e189d5b428bae04f56316c68498470e62768beca73dbf964cd5ac
4
- data.tar.gz: b6e097050d79ffbab0687a72eba3834189506269ef92dee80e71a4a58741386d
3
+ metadata.gz: 9d1d0033d21b1c64de6affcc9c555797edf5206dc2947484ff8391e3c8e739ce
4
+ data.tar.gz: 60732ffbcc8a43cd2f04a6cba76e955b7e764ada9d201cd51a0a624d093b3659
5
5
  SHA512:
6
- metadata.gz: 284e039b588767beb2e3fb505ad61c6e121f667b96c4afa6ef0aef0efe31c0d06bdb5269a73614eda79600eb02cc963122b74e53e3fffb7a26cdcae95ae1d666
7
- data.tar.gz: d77901e08acf36a10ccd00a3474662019fe84b8188ac1b39b40f3312b0b6dcb1c6f609ccd87b4d26808a0f9544425cf6d44ab456af01ff712c9c882150c4ff38
6
+ metadata.gz: 77db441f3e4da2b584065c597796d4adbb08b07e481b43ee85c80218375cbf8932bae847727afa9abee0be02ee5dea1c2effd5caa70216a5bafa34007d0c3820
7
+ data.tar.gz: c180d28c4ac14fe5d6b5756350592b472cd084ce932309fd6cc87f042dffb1f1870dd194260e71b53dbac71fa648bd359c7b4d3c8860c7508f7cc854c9d2ef25
data/README.md CHANGED
@@ -10,7 +10,7 @@ The following constraints apply:
10
10
 
11
11
  * No support for macruby extensions
12
12
  * Only support for the [modern AST](https://github.com/whitequark/parser/#usage) format
13
- * Only support for Ruby >= 3.0
13
+ * Only support for Ruby >= 3.1
14
14
 
15
15
  Notable Users:
16
16
 
@@ -20,9 +20,11 @@ module Unparser
20
20
  # @return [Object]
21
21
  #
22
22
  # @api public
23
+ #
24
+ # mutant:disable
23
25
  def freeze
24
26
  memoized_method_cache
25
- super()
27
+ super
26
28
  end
27
29
 
28
30
  private
@@ -5,7 +5,7 @@ module Unparser
5
5
 
6
6
  # Calculated local variable scope for a given node
7
7
  class LocalVariableScope
8
- include Enumerable, Adamantium, Concord.new(:node)
8
+ include Enumerable, Adamantium
9
9
 
10
10
  # Initialize object
11
11
  #
@@ -21,7 +21,6 @@ module Unparser
21
21
  items << scope
22
22
  end
23
23
  @items = items
24
- super(node)
25
24
  end
26
25
 
27
26
  # Test if local variable was first at given assignment
@@ -9,20 +9,11 @@ module Unparser
9
9
 
10
10
  children :target, :pattern
11
11
 
12
- # Modern ast format emits `match_pattern`
13
- # node on single line pre 3.0, but 3.0+ uses `match_pattern_p`
14
- SYMBOL =
15
- if RUBY_VERSION < '3.0'
16
- ' in '
17
- else
18
- ' => '
19
- end
20
-
21
12
  private
22
13
 
23
14
  def dispatch
24
15
  visit(target)
25
- write(SYMBOL)
16
+ write(' => ')
26
17
  visit(pattern)
27
18
  end
28
19
  end # MatchPattern
@@ -15,19 +15,45 @@ module Unparser
15
15
  private
16
16
 
17
17
  def dispatch
18
- if colon?(key)
19
- write(key.children.first.to_s, ': ')
18
+ if colon?
19
+ emit_colon
20
+ unless implicit_value_lvar? || implicit_value_send?
21
+ write(' ')
22
+ visit(value)
23
+ end
20
24
  else
21
25
  visit(key)
22
26
  write(' => ')
27
+ visit(value)
23
28
  end
24
-
25
- visit(value)
26
29
  end
27
30
 
28
- def colon?(key)
31
+ def colon?
29
32
  n_sym?(key) && BAREWORD.match?(key.children.first)
30
33
  end
34
+
35
+ def emit_colon
36
+ write(key.children.first.to_s, ':')
37
+ end
38
+
39
+ def key_value
40
+ key.children.first
41
+ end
42
+
43
+ def implicit_value_lvar?
44
+ n_lvar?(value) && value.children.first.equal?(key_value)
45
+ end
46
+
47
+ def implicit_value_send?
48
+ children = value.children
49
+
50
+ n_send?(value) \
51
+ && !key_value.end_with?('?') \
52
+ && !key_value.end_with?('!') \
53
+ && children.fetch(0).nil? \
54
+ && children.fetch(1).equal?(key_value) \
55
+ && children.at(2).nil?
56
+ end
31
57
  end
32
58
  end
33
59
  end
@@ -52,6 +52,7 @@ module Unparser
52
52
  kwargs
53
53
  kwsplat
54
54
  lambda
55
+ lvar
55
56
  match_rest
56
57
  pair
57
58
  rescue
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.6.13
4
+ version: 0.6.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-01 00:00:00.000000000 Z
11
+ date: 2024-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.11.27
47
+ version: 0.12.2
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.11.27
54
+ version: 0.12.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mutant-rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.11.27
61
+ version: 0.12.2
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: 0.11.27
68
+ version: 0.12.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -251,6 +251,7 @@ metadata:
251
251
  bug_tracker_uri: https://github.com/mbj/unparser/issues
252
252
  changelog_uri: https://github.com/mbj/unparser/blob/master/Changelog.md
253
253
  funding_uri: https://github.com/sponsors/mbj
254
+ source_code_uri: https://github.com/mbj/unparser
254
255
  rubygems_mfa_required: 'true'
255
256
  post_install_message:
256
257
  rdoc_options: []
@@ -260,14 +261,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
260
261
  requirements:
261
262
  - - ">="
262
263
  - !ruby/object:Gem::Version
263
- version: '3.0'
264
+ version: '3.1'
264
265
  required_rubygems_version: !ruby/object:Gem::Requirement
265
266
  requirements:
266
267
  - - ">="
267
268
  - !ruby/object:Gem::Version
268
269
  version: '0'
269
270
  requirements: []
270
- rubygems_version: 3.3.26
271
+ rubygems_version: 3.5.9
271
272
  signing_key:
272
273
  specification_version: 4
273
274
  summary: Generate equivalent source for parser gem AST nodes