Class: MaRuKu::In::Markdown::SpanLevelParser::SpanContext

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#initializeSpanContext

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_stringObject

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

#elementsObject

Read elements



667
668
669
# File 'lib/maruku/input/parse_span_better.rb', line 667

def elements
  @elements
end

Instance Method Details

#describeObject



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_spaceObject

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_presentObject



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