Class: Documentrix::Utils::Tags
- Inherits:
-
Object
- Object
- Documentrix::Utils::Tags
- Includes:
- Enumerable
- Defined in:
- lib/documentrix/utils/tags.rb
Defined Under Namespace
Classes: Tag
Constant Summary collapse
- DEFAULT_VALID_TAG =
Matches tags with optional leading # characters and at least one non-space character by default:
/\A#*(\S+)/
Instance Attribute Summary collapse
-
#valid_tag ⇒ Object
readonly
the regular expression capturing a valid tag's content.
Instance Method Summary collapse
- #add(tag, source: nil) ⇒ Object
-
#clear ⇒ Documentrix::Utils::Tags
The clear method resets the Documentrix::Utils::Tags instance's set by calling its clear method.
-
#each {|element| ... } ⇒ Documentrix::Utils::Tags
The each method iterates over this Tags instance's set and yields each tags to the given block.
-
#empty? ⇒ TrueClass
The empty? method checks if the Tags instance's set is empty.
-
#initialize(tags = [], valid_tag: DEFAULT_VALID_TAG, source: nil) ⇒ Documentrix::Utils::Tags
constructor
The initialize method sets up the Documentrix::Utils::Tags object by processing an array of tags and adding them to the internal set.
-
#size ⇒ Integer
The size method returns the number of elements in the set.
-
#to_s(link: true) ⇒ Array<String>
The to_s method formats the tags string for output, including source URL if requested.
Constructor Details
#initialize(tags = [], valid_tag: DEFAULT_VALID_TAG, source: nil) ⇒ Documentrix::Utils::Tags
The initialize method sets up the Documentrix::Utils::Tags object by processing an array of tags and adding them to the internal set.
55 56 57 58 59 60 |
# File 'lib/documentrix/utils/tags.rb', line 55 def initialize( = [], valid_tag: DEFAULT_VALID_TAG, source: nil) = Array() @valid_tag = valid_tag @set = [] .each { |tag| add(tag, source:) } end |
Instance Attribute Details
#valid_tag ⇒ Object (readonly)
the regular expression capturing a valid tag's content
62 63 64 |
# File 'lib/documentrix/utils/tags.rb', line 62 def valid_tag @valid_tag end |
Instance Method Details
#add(tag, source: nil) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/documentrix/utils/tags.rb', line 64 def add(tag, source: nil) unless tag.is_a?(Tag) tag = Tag.new(tag, valid_tag:, source:) end index = @set.bsearch_index { _1 >= tag } if index == nil @set.push(tag) elsif @set.at(index) != tag @set.insert(index, tag) end self end |
#clear ⇒ Documentrix::Utils::Tags
The clear method resets the Documentrix::Utils::Tags instance's set by calling its clear method.
96 97 98 99 |
# File 'lib/documentrix/utils/tags.rb', line 96 def clear @set.clear self end |
#each {|element| ... } ⇒ Documentrix::Utils::Tags
The each method iterates over this Tags instance's set and yields each tags to the given block.
107 108 109 110 |
# File 'lib/documentrix/utils/tags.rb', line 107 def each(&block) @set.each(&block) self end |
#empty? ⇒ TrueClass
The empty? method checks if the Tags instance's set is empty.
80 81 82 |
# File 'lib/documentrix/utils/tags.rb', line 80 def empty? @set.empty? end |
#size ⇒ Integer
The size method returns the number of elements in the set.
87 88 89 |
# File 'lib/documentrix/utils/tags.rb', line 87 def size @set.size end |
#to_s(link: true) ⇒ Array<String>
The to_s method formats the tags string for output, including source URL if requested.
118 119 120 |
# File 'lib/documentrix/utils/tags.rb', line 118 def to_s(link: true) @set.map { |tag| tag.to_s(link:) } * ' ' end |