decode 0.16.0 → 0.17.0

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: 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.