Class: MaRuKu::In::Markdown::SpanLevelParser::SpanContext
- Includes:
- Strings
- Defined in:
- lib/maruku/input/parse_span_better.rb
Constant Summary
Constants included from Strings
Strings::Abbreviation, Strings::AttributeDefinitionList, Strings::Definition, Strings::EMailAddress, Strings::FootnoteText, Strings::HeaderWithAttributes, Strings::HeaderWithId, Strings::IncompleteLink, Strings::InlineAttributeList, Strings::LinkRegex, Strings::MightBeTableHeader, Strings::Sep, Strings::TabSize, Strings::TableSeparator
Instance Attribute Summary collapse
-
#cur_string ⇒ Object
Returns the value of attribute cur_string.
-
#elements ⇒ Object
Read elements.
Instance Method Summary collapse
- #describe ⇒ Object
-
#initialize ⇒ SpanContext
constructor
A new instance of SpanContext.
- #push_char(c) ⇒ Object
- #push_element(e) ⇒ Object (also: #push)
- #push_elements(a) ⇒ Object
-
#push_space ⇒ Object
push space into current string if there isn’t one.
- #push_string_if_present ⇒ Object
Methods included from Strings
#add_tabs, #dbg_describe_ary, #force_linebreak?, #line_md_type, #normalize_key_and_value, #num_leading_hashes, #number_of_leading_spaces, #parse_email_headers, #sanitize_ref_id, #spaces_before_first_char, #split_lines, #strip_hashes, #strip_indent, #unquote
Constructor Details
#initialize ⇒ SpanContext
Returns a new instance of SpanContext.
670 671 672 673 |
# File 'lib/maruku/input/parse_span_better.rb', line 670 def initialize @elements = [] @cur_string = "" end |
Instance Attribute Details
#cur_string ⇒ Object
Returns the value of attribute cur_string.
668 669 670 |
# File 'lib/maruku/input/parse_span_better.rb', line 668 def cur_string @cur_string end |
#elements ⇒ Object
Read elements
667 668 669 |
# File 'lib/maruku/input/parse_span_better.rb', line 667 def elements @elements end |
Instance Method Details
#describe ⇒ Object
714 715 716 717 718 719 720 721 722 723 |
# File 'lib/maruku/input/parse_span_better.rb', line 714 def describe lines = @elements.map{|x| x.inspect}.join("\n") s = "Elements read in span: \n" + add_tabs(lines,1, ' -')+"\n" if @cur_string.size > 0 s += "Current string: \n #{@cur_string.inspect}\n" end s end |
#push_char(c) ⇒ Object
702 703 704 705 |
# File 'lib/maruku/input/parse_span_better.rb', line 702 def push_char(c) @cur_string << c nil end |
#push_element(e) ⇒ Object Also known as: push
675 676 677 678 679 680 681 682 |
# File 'lib/maruku/input/parse_span_better.rb', line 675 def push_element(e) raise "Only MDElement and String, please. You pushed #{e.class}: #{e.inspect} " if not (e.kind_of?(String) or e.kind_of?(MDElement)) push_string_if_present @elements << e nil end |
#push_elements(a) ⇒ Object
685 686 687 688 689 690 691 692 693 |
# File 'lib/maruku/input/parse_span_better.rb', line 685 def push_elements(a) for e in a if e.kind_of? String e.each_byte do |b| push_char b end else push_element e end end end |
#push_space ⇒ Object
push space into current string if there isn’t one
709 710 711 712 |
# File 'lib/maruku/input/parse_span_better.rb', line 709 def push_space last = @cur_string[@cur_string.size-1] @cur_string << ?\ if last != ?\ end |
#push_string_if_present ⇒ Object
694 695 696 697 698 699 700 |
# File 'lib/maruku/input/parse_span_better.rb', line 694 def push_string_if_present if @cur_string.size > 0 @elements << @cur_string @cur_string = "" end nil end |