decode 0.27.0 → 0.28.0
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/decode/language/ruby/parser.rb +48 -9
- data/lib/decode/version.rb +1 -1
- data/readme.md +4 -0
- data/releases.md +4 -0
- data.tar.gz.sig +0 -0
- metadata +2 -2
- 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: e70f7211133fa2733ce29e5f220f6d064d911e969de35fd57c6d11d66d9bacbf
|
|
4
|
+
data.tar.gz: fa6e984ae3633d29b2e8060fd650a9a69800ca561c4f8af3e3a3864b18016a44
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c3f0b53f4d6f3615aaef8901cd9dbe20cbc61770d3f136786ba4533a4016ef526936da28774ca1cb45d68d4d63219d4b44213f5afd21869f4c72d79ee8580863
|
|
7
|
+
data.tar.gz: 0531b4c5e10fe9aca3abb1ddadaa42eaca20199002786c159f68a8a8f3d60aff53641507a22b0ef6761928fa636b2f3b4fbe3e2296415e04af8f413fbd2c78e9
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
|
@@ -163,15 +163,36 @@ module Decode
|
|
|
163
163
|
|
|
164
164
|
yield definition
|
|
165
165
|
when :constant_write_node
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
166
|
+
if super_class = struct_super_class_for(node.value)
|
|
167
|
+
definition = Class.new([node.name],
|
|
168
|
+
super_class: super_class,
|
|
169
|
+
visibility: :public,
|
|
170
|
+
comments: comments_for(node),
|
|
171
|
+
parent: parent,
|
|
172
|
+
node: node,
|
|
173
|
+
language: @language,
|
|
174
|
+
source: source,
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
store_definition(parent, node.name, definition)
|
|
178
|
+
yield definition
|
|
179
|
+
|
|
180
|
+
if body = node.value.block&.body
|
|
181
|
+
with_visibility do
|
|
182
|
+
walk_definitions(body, definition, source, &block)
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
else
|
|
186
|
+
definition = Constant.new(node.name,
|
|
187
|
+
comments: comments_for(node),
|
|
188
|
+
parent: parent,
|
|
189
|
+
node: node,
|
|
190
|
+
language: @language,
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
store_definition(parent, node.name, definition)
|
|
194
|
+
yield definition
|
|
195
|
+
end
|
|
175
196
|
when :call_node
|
|
176
197
|
name = node.name
|
|
177
198
|
|
|
@@ -506,6 +527,24 @@ module Decode
|
|
|
506
527
|
end
|
|
507
528
|
end
|
|
508
529
|
|
|
530
|
+
def struct_super_class_for(node)
|
|
531
|
+
return unless node&.type == :call_node
|
|
532
|
+
return unless node.block
|
|
533
|
+
|
|
534
|
+
case node.receiver&.type
|
|
535
|
+
when :constant_read_node
|
|
536
|
+
receiver_name = node.receiver.name.to_s
|
|
537
|
+
when :constant_path_node
|
|
538
|
+
receiver_name = nested_name_for(node.receiver)
|
|
539
|
+
end
|
|
540
|
+
|
|
541
|
+
if receiver_name == "Struct" && node.name == :new
|
|
542
|
+
return "Struct"
|
|
543
|
+
elsif receiver_name == "Data" && node.name == :define
|
|
544
|
+
return "Data"
|
|
545
|
+
end
|
|
546
|
+
end
|
|
547
|
+
|
|
509
548
|
def singleton_name_for(node)
|
|
510
549
|
case node.expression.type
|
|
511
550
|
when :self_node
|
data/lib/decode/version.rb
CHANGED
data/readme.md
CHANGED
|
@@ -24,6 +24,10 @@ Please see the [project documentation](https://socketry.github.io/decode/) for m
|
|
|
24
24
|
|
|
25
25
|
Please see the [project releases](https://socketry.github.io/decode/releases/index) for all releases.
|
|
26
26
|
|
|
27
|
+
### v0.28.0
|
|
28
|
+
|
|
29
|
+
- Add support for indexing methods inside `Struct.new` and `Data.define` assignment blocks.
|
|
30
|
+
|
|
27
31
|
### v0.27.0
|
|
28
32
|
|
|
29
33
|
- Add `decode:documentation:markdown` bake task for generating LLM-optimized Markdown documentation.
|
data/releases.md
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: decode
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.28.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -158,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
158
158
|
- !ruby/object:Gem::Version
|
|
159
159
|
version: '0'
|
|
160
160
|
requirements: []
|
|
161
|
-
rubygems_version: 4.0.
|
|
161
|
+
rubygems_version: 4.0.10
|
|
162
162
|
specification_version: 4
|
|
163
163
|
summary: Code analysis for documentation generation.
|
|
164
164
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|