Module: Coradoc::Util::AsciiDoc
- Defined in:
- lib/coradoc/util/asciidoc.rb
Overview
AsciiDoc-specific utility functions
Class Method Summary collapse
-
.escape_characters(content, escape_chars: []) ⇒ String
Escape special AsciiDoc characters in content.
-
.serialize(model) ⇒ String
Serialize a Coradoc model to AsciiDoc string.
-
.unescape_characters(content, escape_chars: []) ⇒ String
Unescape AsciiDoc characters in content.
Class Method Details
.escape_characters(content, escape_chars: []) ⇒ String
Escape special AsciiDoc characters in content
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/coradoc/util/asciidoc.rb', line 41 def self.escape_characters(content, escape_chars: []) return '' if content.nil? return content if escape_chars.empty? result = content.to_s escape_chars.each do |char| # Escape the character with backslash, but only if not already escaped result = result.gsub(/(?<!\\)#{Regexp.escape(char)}/, "\\#{char}") end result end |
.serialize(model) ⇒ String
Serialize a Coradoc model to AsciiDoc string
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/coradoc/util/asciidoc.rb', line 15 def self.serialize(model) return '' if model.nil? return model if model.is_a?(String) case model when Coradoc::AsciiDoc::Model::Base model.to_adoc when Array model.map { |item| serialize(item) }.join("\n") when Hash model.map { |k, v| "#{k}: #{serialize(v)}" }.join("\n") else model.to_s end end |
.unescape_characters(content, escape_chars: []) ⇒ String
Unescape AsciiDoc characters in content
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/coradoc/util/asciidoc.rb', line 59 def self.unescape_characters(content, escape_chars: []) return '' if content.nil? return content if escape_chars.empty? result = content.to_s escape_chars.each do |char| result = result.gsub("\\#{char}", char) end result end |