Class: RBS::Annotate::Annotations
Relationships & Source Files | |
Namespace Children | |
Classes:
| |
Inherits: | Object |
Defined in: | lib/rbs/annotate/annotations.rb |
Class Method Summary
- .new(items) ⇒ Annotations constructor
- .parse(annotation)
Instance Attribute Summary
- #items readonly
- #skip? ⇒ Boolean readonly
- #skip_all? ⇒ Boolean readonly
Instance Method Summary
Constructor Details
.new(items) ⇒ Annotations
Class Method Details
.parse(annotation)
[ GitHub ]# File 'lib/rbs/annotate/annotations.rb', line 119
def self.parse(annotation) string = annotation.string case when match = string.match(/\Aannotate:rdoc:skip(:all)?\Z/) Skip.new( annotation: annotation, skip_children: string.end_with?(":all") ) when match = string.match(/\Aannotate:rdoc:source:from=(?<path>.+)\Z/) Source.new( annotation: annotation, include: (match[:path] or raise).strip ) when match = string.match(/\Aannotate:rdoc:source:skip=(?<path>.+)\Z/) Source.new( annotation: annotation, skip: (match[:path] or raise).strip ) when match = string.match(/\Aannotate:rdoc:copy:(?<name>.+)\Z/) Copy.new( annotation: annotation, source: (match[:name] or raise).strip ) end end
Instance Attribute Details
#items (readonly)
[ GitHub ]# File 'lib/rbs/annotate/annotations.rb', line 146
attr_reader :items
#skip? ⇒ Boolean
(readonly)
[ GitHub ]
#skip_all? ⇒ Boolean
(readonly)
[ GitHub ]
Instance Method Details
#copy_annotation
[ GitHub ]#test_path(path)
[ GitHub ]# File 'lib/rbs/annotate/annotations.rb', line 164
def test_path(path) # @type var source_items: Array[Source] source_items = _ = items.select {|item| item.is_a?(Source) } return true if source_items.empty? result = source_items[0].include_source == nil items.each do |a| if a.is_a?(Source) if pat = a.include_source if test_path_string(pat, path) result = true end end if pat = a.skip_source if test_path_string(pat, path) result = false end end end end result end
#test_path_string(pattern, string)
[ GitHub ]# File 'lib/rbs/annotate/annotations.rb', line 191
def test_path_string(pattern, string) return true if pattern == string return true if string.start_with?(pattern + File::SEPARATOR) false end