Module: Sourcerer::AsciiDoc::AttributesFilter
- Defined in:
- lib/sourcerer/asciidoc.rb
Overview
Utilities for filtering and partitioning Asciidoctor document attributes.
Separates user-defined (“custom”) attributes from those injected by Asciidoctor at parse time (“built-in”).
Constant Summary collapse
- BUILTIN_ATTR_KEYS =
Attribute keys injected by Asciidoctor at parse time.
(Asciidoctor::DEFAULT_ATTRIBUTES.keys + %w[ asciidoctor asciidoctor-version attribute-missing attribute-undefined authorcount docdate docdatetime docdir docfile docfilesuffix docname doctime doctitle doctype docyear embedded htmlsyntax iconsdir localdate localdatetime localtime localyear max-include-depth notitle outfilesuffix stylesdir toc-position user-home ]).freeze
- BUILTIN_ATTR_PATTERNS =
[ /^backend(-|$)/, /^basebackend(-|$)/, /^doctype-/, /^filetype(-|$)/, /^safe-mode-/ ].freeze
Class Method Summary collapse
-
.builtin_attributes(doc) ⇒ Hash{String => String}
Returns built-in Asciidoctor attributes injected at parse time.
-
.user_attributes(doc) ⇒ Hash{String => String}
Returns user-defined attributes, excluding Asciidoctor built-ins.
Class Method Details
.builtin_attributes(doc) ⇒ Hash{String => String}
Returns built-in Asciidoctor attributes injected at parse time.
568 569 570 571 572 573 |
# File 'lib/sourcerer/asciidoc.rb', line 568 def builtin_attributes doc doc.attributes.select do |k, _| BUILTIN_ATTR_KEYS.include?(k) || BUILTIN_ATTR_PATTERNS.any? { |pat| pat.match?(k) } end end |
.user_attributes(doc) ⇒ Hash{String => String}
Returns user-defined attributes, excluding Asciidoctor built-ins.
557 558 559 560 561 562 |
# File 'lib/sourcerer/asciidoc.rb', line 557 def user_attributes doc doc.attributes.reject do |k, _| BUILTIN_ATTR_KEYS.include?(k) || BUILTIN_ATTR_PATTERNS.any? { |pat| pat.match?(k) } end end |