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::LinkRegex, Strings::MightBeTableHeader, Strings::Sep, Strings::TabSize, Strings::TableSeparator, Strings::URL

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, #spaces_before_first_char, #split_lines, #strip_hashes, #strip_indent, #unquote

Constructor Details

#initializeSpanContext

Returns a new instance of SpanContext.



595
596
597
598
# File 'lib/maruku/input/parse_span_better.rb', line 595

def initialize
	@elements = []
	@cur_string = ""
end

Instance Attribute Details

#cur_stringObject

Returns the value of attribute cur_string.



593
594
595
# File 'lib/maruku/input/parse_span_better.rb', line 593

def cur_string
  @cur_string
end

#elementsObject

Read elements



592
593
594
# File 'lib/maruku/input/parse_span_better.rb', line 592

def elements
  @elements
end

Instance Method Details

#describeObject



638
639
640
641
642
643
644
645
646
647
# File 'lib/maruku/input/parse_span_better.rb', line 638

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



626
627
628
629
# File 'lib/maruku/input/parse_span_better.rb', line 626

def push_char(c)
	@cur_string << c 
	nil
end

#push_element(e) ⇒ Object



600
601
602
603
604
605
606
607
# File 'lib/maruku/input/parse_span_better.rb', line 600

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



609
610
611
612
613
614
615
616
617
# File 'lib/maruku/input/parse_span_better.rb', line 609

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



633
634
635
636
# File 'lib/maruku/input/parse_span_better.rb', line 633

def push_space
	last = @cur_string[@cur_string.size-1]
	@cur_string << ?\  if last != ?\ 
end

#push_string_if_presentObject



618
619
620
621
622
623
624
# File 'lib/maruku/input/parse_span_better.rb', line 618

def push_string_if_present
	if @cur_string.size > 0
		@elements << @cur_string
		@cur_string = ""
	end
	nil
end