decode 0.16.0 → 0.17.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dae66e72979c078b311b91e8ad4ae7b6e3adbb0d3b03d0982db05b176d75d417
4
- data.tar.gz: f42f00c8f685fa1ce6ae05336e4a41ade53b1cf40bc7002cb7f540327e5ec92c
3
+ metadata.gz: 46261946c303174f919739a47b679548956f72cac96129fc3a3244c45e20e5f9
4
+ data.tar.gz: 4a42af06139fb8fcfeb0acfa827e3f7750c0615bdf1fab3da307fc542d3955b0
5
5
  SHA512:
6
- metadata.gz: 205d18a44b532e6951babfe9582e43d64c5a03d7dfec8cfccf9e3ed02adbef5e8f72121632d86f15096a30ad1e6559075959394b79b29c0570d7c395b381e87d
7
- data.tar.gz: b6106e00e17c5d7680046f837c3eabbc8c939e705bae924687635a8dc3ba1ffdb9d182b1b35df9765069974034d7506e631ad6f42b3434e1842677d2f342606a
6
+ metadata.gz: 781d7182b8ab6cfbfd6cace3a8afb19bf2ccad79693e3cba410cd85806c003c71f07386255af6f321403a75d5675d230b0c2d0a2881c7f3f519740e89b1908d6
7
+ data.tar.gz: bdf5446b31e7439a058d1459318ff0fbbab5de576df0ca2ead53d7b2d2ab320265745984389cc66fcdef87ae7cce8e3f08c936bcdbf2edacf0f6d70b5690fa6d
@@ -54,6 +54,14 @@ module Decode
54
54
  end
55
55
  end
56
56
 
57
+ def filter(klass)
58
+ return to_enum(:filter, klass) unless block_given?
59
+
60
+ @children&.each do |child|
61
+ yield child if child.is_a?(klass)
62
+ end
63
+ end
64
+
57
65
  # Any lines of text associated wtih this node.
58
66
  # @returns [Array(String) | Nil] The lines of text.
59
67
  def text
@@ -30,13 +30,15 @@ module Decode
30
30
  # - `@asynchronous This method may yield.`
31
31
  #
32
32
  class Pragma < Tag
33
- PATTERN = /\A(?<details>.*?)?\Z/
33
+ def self.parse(directive, text, lines, tags, level = 0)
34
+ self.build(directive, text)
35
+ end
34
36
 
35
- def self.build(directive, match)
37
+ def self.build(directive, text)
36
38
  node = self.new(directive)
37
39
 
38
- if details = match[:details]
39
- node.add(Text.new(details))
40
+ if text
41
+ node.add(Text.new(text))
40
42
  end
41
43
 
42
44
  return node
@@ -23,8 +23,12 @@ require_relative 'node'
23
23
  module Decode
24
24
  module Comment
25
25
  class Tag < Node
26
+ def self.match(text)
27
+ self::PATTERN.match(text)
28
+ end
29
+
26
30
  def self.parse(directive, text, lines, tags, level = 0)
27
- if match = self::PATTERN.match(text)
31
+ if match = self.match(text)
28
32
  node = self.build(directive, match)
29
33
 
30
34
  tags.parse(lines, level + 1) do |child|
@@ -35,10 +35,12 @@ module Decode
35
35
  tags['raises'] = Comment::Raises
36
36
  tags['throws'] = Comment::Throws
37
37
 
38
- tags['reentrant'] = Comment::Pragma
39
38
  tags['deprecated'] = Comment::Pragma
40
- tags['blocking'] = Comment::Pragma
39
+
41
40
  tags['asynchronous'] = Comment::Pragma
41
+
42
+ tags['public'] = Comment::Pragma
43
+ tags['private'] = Comment::Pragma
42
44
  end
43
45
 
44
46
  def initialize(name, extensions: self.class::EXTENSIONS, tags: self.class::TAGS)
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Decode
22
- VERSION = "0.16.0"
22
+ VERSION = "0.17.0"
23
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-10 00:00:00.000000000 Z
11
+ date: 2021-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  - !ruby/object:Gem::Version
150
150
  version: '0'
151
151
  requirements: []
152
- rubygems_version: 3.1.2
152
+ rubygems_version: 3.2.22
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Code analysis for documentation generation.