Class: MdBlockConverter::Markdown
- Inherits:
-
Object
- Object
- MdBlockConverter::Markdown
- Defined in:
- lib/md_block_converter/markdown.rb
Instance Attribute Summary collapse
-
#elements ⇒ Object
Returns the value of attribute elements.
Instance Method Summary collapse
-
#initialize(text) ⇒ Markdown
constructor
A new instance of Markdown.
- #to_s ⇒ Object
Constructor Details
#initialize(text) ⇒ Markdown
Returns a new instance of Markdown.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/md_block_converter/markdown.rb', line 7 def initialize(text) iter_context = { in_block: false, block_lines: [], block_indent: nil, block_lang: nil, elements: [] } @elements = text.lines.map(&:chomp).each_with_object(iter_context) do |line| if line.match?(/^\s*```\s*$/) if iter_context[:in_block] iter_context[:in_block] = false iter_context[:elements] << Block.new(iter_context[:block_lines], iter_context[:block_indent], iter_context[:block_lang]).convert! iter_context[:block_lines] = [] iter_context[:block_indent] = nil iter_context[:block_lang] = nil else iter_context[:in_block] = true iter_context[:block_lines] = [] iter_context[:block_indent] = line.match(/^\s*/)[0].length iter_context[:block_lang] = line.match(/```\s*(\S*)/)[1] end else if iter_context[:in_block] iter_context[:block_lines] << line else iter_context[:elements] << line end end end[:elements] end |
Instance Attribute Details
#elements ⇒ Object
Returns the value of attribute elements.
5 6 7 |
# File 'lib/md_block_converter/markdown.rb', line 5 def elements @elements end |
Instance Method Details
#to_s ⇒ Object
39 40 41 |
# File 'lib/md_block_converter/markdown.rb', line 39 def to_s @elements.map(&:to_s).join("\n") end |