decode 0.17.0 → 0.17.3

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: 46261946c303174f919739a47b679548956f72cac96129fc3a3244c45e20e5f9
4
- data.tar.gz: 4a42af06139fb8fcfeb0acfa827e3f7750c0615bdf1fab3da307fc542d3955b0
3
+ metadata.gz: a838fd5f42db321e8afe7627740faca8a0bce85e66016b1a9f5eac4c1b800e13
4
+ data.tar.gz: 2d2e88c8dfbddaf2507f8b94ef7b3678247640ff48768dd8971afe4bca32a579
5
5
  SHA512:
6
- metadata.gz: 781d7182b8ab6cfbfd6cace3a8afb19bf2ccad79693e3cba410cd85806c003c71f07386255af6f321403a75d5675d230b0c2d0a2881c7f3f519740e89b1908d6
7
- data.tar.gz: bdf5446b31e7439a058d1459318ff0fbbab5de576df0ca2ead53d7b2d2ab320265745984389cc66fcdef87ae7cce8e3f08c936bcdbf2edacf0f6d70b5690fa6d
6
+ metadata.gz: 2fd7f4dc09a37c14d87750e3cf12ed22f6352877a382ab6a08f8571b48d774761fa2deb6dcc7382bb43868361774816d018c086f3ae2e0b0908a89c8e9704154
7
+ data.tar.gz: e6b60875db3b53417736599852a9354eabbdc08503b3dda594bd364df7c98fa84702303917f27c7850054ab40d0f5c25b018a0a9919bf07a9e7d922cd8b480fb
checksums.yaml.gz.sig ADDED
Binary file
@@ -97,13 +97,17 @@ module Decode
97
97
  @path
98
98
  elsif @parent
99
99
  # Merge with parent:
100
- @path = [*@parent.path, @name].freeze
100
+ @path = [*@parent.path, *path_name].freeze
101
101
  else
102
102
  # At top:
103
- @path = [@name].freeze
103
+ @path = path_name.freeze
104
104
  end
105
105
  end
106
106
 
107
+ def path_name
108
+ [@name]
109
+ end
110
+
107
111
  alias lexical_path path
108
112
 
109
113
  # A short form of the definition.
data/lib/decode/index.rb CHANGED
@@ -51,7 +51,6 @@ module Decode
51
51
 
52
52
  # A (prefix) trie of lexically scoped definitions.
53
53
  # @attribute [Trie]
54
-
55
54
  attr :trie
56
55
 
57
56
  # Updates the index by parsing the specified files.
@@ -37,18 +37,22 @@ module Decode
37
37
  # The short form of the class.
38
38
  # e.g. `class Animal`.
39
39
  def short_form
40
- "class #{@name}"
40
+ "class #{path_name.last}"
41
41
  end
42
42
 
43
43
  # The long form of the class.
44
44
  # e.g. `class Dog < Animal`.
45
45
  def long_form
46
- if super_node = @node.children[1]
47
- @node.location.keyword.join(
48
- super_node.location.expression
49
- ).source
46
+ if super_class = self.super_class
47
+ "#{qualified_form} < #{super_class}"
50
48
  else
51
- self.short_form
49
+ qualified_form
50
+ end
51
+ end
52
+
53
+ def super_class
54
+ if super_node = @node.children[1]
55
+ super_node.location.expression.source
52
56
  end
53
57
  end
54
58
 
@@ -57,6 +61,10 @@ module Decode
57
61
  def qualified_form
58
62
  "class #{self.qualified_name}"
59
63
  end
64
+
65
+ def path_name
66
+ @name.to_s.split('::').map(&:to_sym)
67
+ end
60
68
  end
61
69
 
62
70
  # A Ruby-specific singleton class.
@@ -37,18 +37,23 @@ module Decode
37
37
  # The short form of the module.
38
38
  # e.g. `module Barnyard`.
39
39
  def short_form
40
- "module #{@name}"
40
+ "module #{path_name.last}"
41
41
  end
42
42
 
43
- # The long form is the same as the short form.
44
- alias long_form short_form
43
+ def long_form
44
+ qualified_form
45
+ end
45
46
 
46
47
  # The fully qualified name of the class.
47
48
  # e.g. `module ::Barnyard::Dog`.
48
49
  def qualified_form
49
50
  "module #{self.qualified_name}"
50
51
  end
52
+
53
+ def path_name
54
+ @name.to_s.split('::').map(&:to_sym)
55
+ end
51
56
  end
52
57
  end
53
58
  end
54
- end
59
+ end
@@ -85,7 +85,7 @@ module Decode
85
85
  end
86
86
  when :module
87
87
  definition = Module.new(
88
- node, node.children[0].children[1],
88
+ node, nested_name_for(node.children[0]),
89
89
  comments: extract_comments_for(node, comments),
90
90
  parent: parent,
91
91
  language: @language
@@ -98,7 +98,7 @@ module Decode
98
98
  end
99
99
  when :class
100
100
  definition = Class.new(
101
- node, node.children[0].children[1],
101
+ node, nested_name_for(node.children[0]),
102
102
  comments: extract_comments_for(node, comments),
103
103
  parent: parent, language: @language
104
104
  )
@@ -211,6 +211,14 @@ module Decode
211
211
  end
212
212
  end
213
213
 
214
+ def nested_name_for(node)
215
+ if prefix = node.children[0]
216
+ "#{nested_name_for(prefix)}::#{node.children[1]}".to_sym
217
+ else
218
+ node.children[1]
219
+ end
220
+ end
221
+
214
222
  KIND_ATTRIBUTE = /\A
215
223
  (@(?<kind>attribute)\s+(?<value>.*?))|
216
224
  (@define\s+(?<kind>)\s+(?<value>.*?))
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Decode
22
- VERSION = "0.17.0"
22
+ VERSION = "0.17.3"
23
23
  end
data.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,14 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.17.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2021-07-18 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEhDCCAuygAwIBAgIBATANBgkqhkiG9w0BAQsFADA3MTUwMwYDVQQDDCxzYW11
14
+ ZWwud2lsbGlhbXMvREM9b3Jpb250cmFuc2Zlci9EQz1jby9EQz1uejAeFw0yMTA4
15
+ MTYwNjMzNDRaFw0yMjA4MTYwNjMzNDRaMDcxNTAzBgNVBAMMLHNhbXVlbC53aWxs
16
+ aWFtcy9EQz1vcmlvbnRyYW5zZmVyL0RDPWNvL0RDPW56MIIBojANBgkqhkiG9w0B
17
+ AQEFAAOCAY8AMIIBigKCAYEAyXLSS/cw+fXJ5e7hi+U/TeChPWeYdwJojDsFY1xr
18
+ xvtqbTTL8gbLHz5LW3QD2nfwCv3qTlw0qI3Ie7a9VMJMbSvgVEGEfQirqIgJXWMj
19
+ eNMDgKsMJtC7u/43abRKx7TCURW3iWyR19NRngsJJmaR51yGGGm2Kfsr+JtKKLtL
20
+ L188Wm3f13KAx7QJU8qyuBnj1/gWem076hzdA7xi1DbrZrch9GCRz62xymJlrJHn
21
+ 9iZEZ7AxrS7vokhMlzSr/XMUihx/8aFKtk+tMLClqxZSmBWIErWdicCGTULXCBNb
22
+ E/mljo4zEVKhlTWpJklMIhr55ZRrSarKFuW7en0+tpJrfsYiAmXMJNi4XAYJH7uL
23
+ rgJuJwSaa/dMz+VmUoo7VKtSfCoOI+6v5/z0sK3oT6sG6ZwyI47DBq2XqNC6tnAj
24
+ w+XmCywiTQrFzMMAvcA7rPI4F0nU1rZId51rOvvfxaONp+wgTi4P8owZLw0/j0m4
25
+ 8C20DYi6EYx4AHDXiLpElWh3AgMBAAGjgZowgZcwCQYDVR0TBAIwADALBgNVHQ8E
26
+ BAMCBLAwHQYDVR0OBBYEFB6ZaeWKxQjGTI+pmz7cKRmMIywwMC4GA1UdEQQnMCWB
27
+ I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MC4GA1UdEgQnMCWB
28
+ I3NhbXVlbC53aWxsaWFtc0BvcmlvbnRyYW5zZmVyLmNvLm56MA0GCSqGSIb3DQEB
29
+ CwUAA4IBgQBVoM+pu3dpdUhZM1w051iw5GfiqclAr1Psypf16Tiod/ho//4oAu6T
30
+ 9fj3DPX/acWV9P/FScvqo4Qgv6g4VWO5ZU7z2JmPoTXZtYMunRAmQPFL/gSUc6aK
31
+ vszMHIyhtyzRc6DnfW2AiVOjMBjaYv8xXZc9bduniRVPrLR4J7ozmGLh4o4uJp7w
32
+ x9KCFaR8Lvn/r0oJWJOqb/DMAYI83YeN2Dlt3jpwrsmsONrtC5S3gOUle5afSGos
33
+ bYt5ocnEpKSomR9ZtnCGljds/aeO1Xgpn2r9HHcjwnH346iNrnHmMlC7BtHUFPDg
34
+ Ts92S47PTOXzwPBDsrFiq3VLbRjHSwf8rpqybQBH9MfzxGGxTaETQYOd6b4e4Ag6
35
+ y92abGna0bmIEb4+Tx9rQ10Uijh1POzvr/VTH4bbIPy9FbKrRsIQ24qDbNJRtOpE
36
+ RAOsIl+HOBTb252nx1kIRN5hqQx272AJCbCjKx8egcUQKffFVVCI0nye09v5CK+a
37
+ HiLJ8VOFx6w=
38
+ -----END CERTIFICATE-----
39
+ date: 2022-05-13 00:00:00.000000000 Z
12
40
  dependencies:
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: parser
@@ -149,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
177
  - !ruby/object:Gem::Version
150
178
  version: '0'
151
179
  requirements: []
152
- rubygems_version: 3.2.22
180
+ rubygems_version: 3.3.7
153
181
  signing_key:
154
182
  specification_version: 4
155
183
  summary: Code analysis for documentation generation.
metadata.gz.sig ADDED
@@ -0,0 +1 @@
1
+ 0�_Vp�