ast-crispr-ruby-prism 7.1.9 → 7.1.10
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
- checksums.yaml.gz.sig +0 -0
- data/lib/ast/crispr/ruby/prism/version.rb +1 -1
- data/lib/ast/crispr/ruby/prism.rb +40 -1
- data.tar.gz.sig +4 -2
- metadata +37 -23
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7ad2fc332edea870e506506c71dd779caa84870a502c5d551863cf37b8838eae
|
|
4
|
+
data.tar.gz: 539b8b9c7986c6c5f6b5c9fc59a2a70b46d44655bec2a7662d362c0b535b3c09
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1b3614da6e67904a8d59837fde603e3900204fae159025f20caae58976c7ea637dbb675e29bb6df9d47df4cbf907e04d2f0ab685113fc301bd71c871602fa204
|
|
7
|
+
data.tar.gz: 444d4b066e515426885d8ea176acabf7226ea3c9113b2a44ed29c49e51ed1ad245dda09e66b0e30e9aa00dc5de006e0e9daa4dcdf17aa0bf3c096109d72c705c
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
|
@@ -7,7 +7,7 @@ module Ast
|
|
|
7
7
|
# Version namespace for this gem.
|
|
8
8
|
module Version
|
|
9
9
|
# Current gem version.
|
|
10
|
-
VERSION = '7.1.
|
|
10
|
+
VERSION = '7.1.10'
|
|
11
11
|
end
|
|
12
12
|
# Current gem version exposed at the traditional constant location.
|
|
13
13
|
VERSION = Version::VERSION # Traditional Constant Location
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'ast/crispr'
|
|
4
4
|
require 'prism/merge'
|
|
5
|
+
require 'tree_haver'
|
|
5
6
|
require_relative 'prism/version'
|
|
6
7
|
|
|
7
8
|
module Ast
|
|
@@ -36,6 +37,8 @@ module Ast
|
|
|
36
37
|
case owner_scope
|
|
37
38
|
when :shared_default, :line_bound_statements, :top_level_statements
|
|
38
39
|
analysis.statements
|
|
40
|
+
when :all_statements
|
|
41
|
+
statement_groups(document).flatten(1)
|
|
39
42
|
when :ruby_comments
|
|
40
43
|
analysis.parse_result.comments
|
|
41
44
|
else
|
|
@@ -45,7 +48,12 @@ module Ast
|
|
|
45
48
|
|
|
46
49
|
def comment_regions_for(document, owner, region: :leading, owner_scope: :shared_default)
|
|
47
50
|
analysis = document.ast
|
|
48
|
-
owners =
|
|
51
|
+
owners = case owner_scope
|
|
52
|
+
when :all_statements
|
|
53
|
+
statement_groups(document).find { |group| group.include?(owner) } || []
|
|
54
|
+
else
|
|
55
|
+
structural_owners(document, owner_scope: owner_scope)
|
|
56
|
+
end
|
|
49
57
|
|
|
50
58
|
case region
|
|
51
59
|
when :leading
|
|
@@ -68,6 +76,13 @@ module Ast
|
|
|
68
76
|
supported_comment_regions: [:leading],
|
|
69
77
|
metadata: { adapter: :prism }
|
|
70
78
|
)
|
|
79
|
+
when :all_statements
|
|
80
|
+
Ast::Crispr::StructureProfile.new(
|
|
81
|
+
owner_scope: owner_scope,
|
|
82
|
+
owner_selector: :line_bound_statements,
|
|
83
|
+
supported_comment_regions: [:leading],
|
|
84
|
+
metadata: { adapter: :prism, selector: :all_statements }
|
|
85
|
+
)
|
|
71
86
|
when :ruby_comments
|
|
72
87
|
Ast::Crispr::StructureProfile.new(
|
|
73
88
|
owner_scope: owner_scope,
|
|
@@ -79,6 +94,30 @@ module Ast
|
|
|
79
94
|
raise Ast::Crispr::Error.new('Unsupported CRISPR owner scope', details: { owner_scope: owner_scope })
|
|
80
95
|
end
|
|
81
96
|
end
|
|
97
|
+
|
|
98
|
+
private
|
|
99
|
+
|
|
100
|
+
# Every StatementsNode body found anywhere in the tree (the
|
|
101
|
+
# top-level program body, and every nested block/def/class/etc.
|
|
102
|
+
# body), each kept as its own group so leading-comment ownership
|
|
103
|
+
# can be resolved against a node's real local siblings rather
|
|
104
|
+
# than a single flattened, cross-scope list. Built from the same
|
|
105
|
+
# ::Prism::ParseResult document.ast already parsed and memoizes,
|
|
106
|
+
# so node identity stays consistent with #statements and
|
|
107
|
+
# #parse_result.comments — no separate re-parse.
|
|
108
|
+
def statement_groups(document)
|
|
109
|
+
root = TreeHaver::Backends::Prism::Node.new(document.ast.parse_result.value, document.content)
|
|
110
|
+
groups = []
|
|
111
|
+
walk_statement_groups(root, groups)
|
|
112
|
+
groups
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def walk_statement_groups(node, groups)
|
|
116
|
+
return unless node
|
|
117
|
+
|
|
118
|
+
groups << node.inner_node.body if node.inner_node.is_a?(::Prism::StatementsNode)
|
|
119
|
+
node.children.each { |child| walk_statement_groups(child, groups) }
|
|
120
|
+
end
|
|
82
121
|
end
|
|
83
122
|
|
|
84
123
|
module Selectors
|
data.tar.gz.sig
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
�
|
|
2
|
-
|
|
1
|
+
T�ۇA�X���MW��@6�����g�u8�v�ƌ�~��"��2�˚�I��GgňږLp]��A3a��h���Z��:���6E���R��c�IJi;`H�"bL`W 7r�@����Y&G�����J��)b^��G���k肏|�6s�#=
|
|
2
|
+
/Xd��c�z)�i�'��G��~�����_z��'�D)p�;�J~�u'����*ɻ�h��a����ƴ�ɫ�>Jl���7������?s�]=KN��'�KOa�o�:]^ܝn�2����B���}
|
|
3
|
+
la0'zY�i���XG��vQ
|
|
4
|
+
Ih���{-i��=�!j|=������R
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ast-crispr-ruby-prism
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.1.
|
|
4
|
+
version: 7.1.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -43,28 +43,42 @@ dependencies:
|
|
|
43
43
|
requirements:
|
|
44
44
|
- - '='
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 7.1.
|
|
46
|
+
version: 7.1.10
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - '='
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 7.1.
|
|
53
|
+
version: 7.1.10
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: prism-merge
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - '='
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 7.1.
|
|
60
|
+
version: 7.1.10
|
|
61
61
|
type: :runtime
|
|
62
62
|
prerelease: false
|
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - '='
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: 7.1.
|
|
67
|
+
version: 7.1.10
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: tree_haver
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - '='
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 7.1.10
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - '='
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 7.1.10
|
|
68
82
|
- !ruby/object:Gem::Dependency
|
|
69
83
|
name: version_gem
|
|
70
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -91,20 +105,20 @@ dependencies:
|
|
|
91
105
|
requirements:
|
|
92
106
|
- - "~>"
|
|
93
107
|
- !ruby/object:Gem::Version
|
|
94
|
-
version: '3.
|
|
108
|
+
version: '3.1'
|
|
95
109
|
- - ">="
|
|
96
110
|
- !ruby/object:Gem::Version
|
|
97
|
-
version: 3.
|
|
111
|
+
version: 3.1.8
|
|
98
112
|
type: :development
|
|
99
113
|
prerelease: false
|
|
100
114
|
version_requirements: !ruby/object:Gem::Requirement
|
|
101
115
|
requirements:
|
|
102
116
|
- - "~>"
|
|
103
117
|
- !ruby/object:Gem::Version
|
|
104
|
-
version: '3.
|
|
118
|
+
version: '3.1'
|
|
105
119
|
- - ">="
|
|
106
120
|
- !ruby/object:Gem::Version
|
|
107
|
-
version: 3.
|
|
121
|
+
version: 3.1.8
|
|
108
122
|
- !ruby/object:Gem::Dependency
|
|
109
123
|
name: bundler-audit
|
|
110
124
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -182,7 +196,7 @@ dependencies:
|
|
|
182
196
|
version: '3.2'
|
|
183
197
|
- - ">="
|
|
184
198
|
- !ruby/object:Gem::Version
|
|
185
|
-
version: 3.2.
|
|
199
|
+
version: 3.2.5
|
|
186
200
|
type: :development
|
|
187
201
|
prerelease: false
|
|
188
202
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -192,7 +206,7 @@ dependencies:
|
|
|
192
206
|
version: '3.2'
|
|
193
207
|
- - ">="
|
|
194
208
|
- !ruby/object:Gem::Version
|
|
195
|
-
version: 3.2.
|
|
209
|
+
version: 3.2.5
|
|
196
210
|
- !ruby/object:Gem::Dependency
|
|
197
211
|
name: kettle-test
|
|
198
212
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -202,7 +216,7 @@ dependencies:
|
|
|
202
216
|
version: '2.0'
|
|
203
217
|
- - ">="
|
|
204
218
|
- !ruby/object:Gem::Version
|
|
205
|
-
version: 2.0.
|
|
219
|
+
version: 2.0.23
|
|
206
220
|
type: :development
|
|
207
221
|
prerelease: false
|
|
208
222
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -212,7 +226,7 @@ dependencies:
|
|
|
212
226
|
version: '2.0'
|
|
213
227
|
- - ">="
|
|
214
228
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: 2.0.
|
|
229
|
+
version: 2.0.23
|
|
216
230
|
- !ruby/object:Gem::Dependency
|
|
217
231
|
name: turbo_tests2
|
|
218
232
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -222,7 +236,7 @@ dependencies:
|
|
|
222
236
|
version: '3.2'
|
|
223
237
|
- - ">="
|
|
224
238
|
- !ruby/object:Gem::Version
|
|
225
|
-
version: 3.2.
|
|
239
|
+
version: 3.2.14
|
|
226
240
|
type: :development
|
|
227
241
|
prerelease: false
|
|
228
242
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -232,7 +246,7 @@ dependencies:
|
|
|
232
246
|
version: '3.2'
|
|
233
247
|
- - ">="
|
|
234
248
|
- !ruby/object:Gem::Version
|
|
235
|
-
version: 3.2.
|
|
249
|
+
version: 3.2.14
|
|
236
250
|
- !ruby/object:Gem::Dependency
|
|
237
251
|
name: ruby-progressbar
|
|
238
252
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -256,7 +270,7 @@ dependencies:
|
|
|
256
270
|
version: '1.0'
|
|
257
271
|
- - ">="
|
|
258
272
|
- !ruby/object:Gem::Version
|
|
259
|
-
version: 1.0.
|
|
273
|
+
version: 1.0.9
|
|
260
274
|
type: :development
|
|
261
275
|
prerelease: false
|
|
262
276
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -266,7 +280,7 @@ dependencies:
|
|
|
266
280
|
version: '1.0'
|
|
267
281
|
- - ">="
|
|
268
282
|
- !ruby/object:Gem::Version
|
|
269
|
-
version: 1.0.
|
|
283
|
+
version: 1.0.9
|
|
270
284
|
- !ruby/object:Gem::Dependency
|
|
271
285
|
name: gitmoji-regex
|
|
272
286
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -276,7 +290,7 @@ dependencies:
|
|
|
276
290
|
version: '2.0'
|
|
277
291
|
- - ">="
|
|
278
292
|
- !ruby/object:Gem::Version
|
|
279
|
-
version: 2.0.
|
|
293
|
+
version: 2.0.15
|
|
280
294
|
type: :development
|
|
281
295
|
prerelease: false
|
|
282
296
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -286,7 +300,7 @@ dependencies:
|
|
|
286
300
|
version: '2.0'
|
|
287
301
|
- - ">="
|
|
288
302
|
- !ruby/object:Gem::Version
|
|
289
|
-
version: 2.0.
|
|
303
|
+
version: 2.0.15
|
|
290
304
|
description: "\U0001F9EC Ruby/Prism structural owner selectors and edit helpers for
|
|
291
305
|
ast-crispr."
|
|
292
306
|
email:
|
|
@@ -307,10 +321,10 @@ licenses:
|
|
|
307
321
|
- PolyForm-Small-Business-1.0.0
|
|
308
322
|
metadata:
|
|
309
323
|
homepage_uri: https://structuredmerge.org
|
|
310
|
-
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.
|
|
311
|
-
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.
|
|
324
|
+
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.10
|
|
325
|
+
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.10/CHANGELOG.md
|
|
312
326
|
bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
|
|
313
|
-
documentation_uri: https://www.rubydoc.info/gems/ast-crispr-ruby-prism/7.1.
|
|
327
|
+
documentation_uri: https://www.rubydoc.info/gems/ast-crispr-ruby-prism/7.1.10
|
|
314
328
|
funding_uri: https://github.com/sponsors/pboling
|
|
315
329
|
wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
|
|
316
330
|
news_uri: https://www.railsbling.com/tags/ast-crispr-ruby-prism
|
|
@@ -340,7 +354,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
340
354
|
- !ruby/object:Gem::Version
|
|
341
355
|
version: '0'
|
|
342
356
|
requirements: []
|
|
343
|
-
rubygems_version: 4.0.
|
|
357
|
+
rubygems_version: 4.0.20
|
|
344
358
|
specification_version: 4
|
|
345
359
|
summary: "\U0001F9EC Prism adapter for AST CRISPR structural edits"
|
|
346
360
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|