### Home Classes Methods

### In Files

- lib/maruku/input/linesource.rb

### Parent

Object

### Methods

- ::new
- #cur_index
- #cur_line
- #describe
- #ignore_line
- #next_line
- #original_line_number
- #shift_line
- #tell_me_the_future

### Included Modules

- MaRuKu::Strings

### Class/Module Index

Quicksearch

- MaRuKu
- MaRuKu::Errors
- MaRuKu::Exception
- MaRuKu::Helpers
- MaRuKu::In
- MaRuKu::In::Markdown
- MaRuKu::In::Markdown::BlockLevelParser
- MaRuKu::In::Markdown::BlockLevelParser::BlockContext
- MaRuKu::In::Markdown::BlockLevelParser::LineSource
- MaRuKu::In::Markdown::SpanExtension
- MaRuKu::In::Markdown::SpanLevelParser
- MaRuKu::In::Markdown::SpanLevelParser::CharSourceDebug
- MaRuKu::In::Markdown::SpanLevelParser::CharSourceManual
- MaRuKu::In::Markdown::SpanLevelParser::CharSourceStrscan
- MaRuKu::In::Markdown::SpanLevelParser::HTMLHelper
- MaRuKu::In::Markdown::SpanLevelParser::SpanContext
- MaRuKu::MDDocument
- MaRuKu::MDElement
- MaRuKu::Out
- MaRuKu::Out::HTML
- MaRuKu::Out::Latex
- MaRuKu::Out::Latex::LatexEntity
- MaRuKu::Out::Markdown
- MaRuKu::Section
- MaRuKu::Strings
- MaRuKu::Tests
- Array
- Hash
- Maruku
- Module
- NilClass
- Object
- String
- Textile2Signature

No matching classes.

# MaRuKu::In::Markdown::BlockLevelParser::LineSource

This represents a source of lines that can be consumed.

It is the twin of CharSource.

### Attributes

parent[R]

### Public Class Methods

new(lines, parent=nil, parent_offset=nil) click to toggle source

    # File lib/maruku/input/linesource.rb, line 33
    def initialize(lines, parent=nil, parent_offset=nil)
            raise "NIL lines? " if not lines
            @lines = lines
            @lines_index = 0
            @parent = parent
            @parent_offset = parent_offset
    end

### Public Instance Methods

cur_index() click to toggle source

    # File lib/maruku/input/linesource.rb, line 87
    def cur_index
            @lines_index
    end

cur_line() click to toggle source

    # File lib/maruku/input/linesource.rb, line 41
    def cur_line()  @lines[@lines_index] end

describe() click to toggle source

    # File lib/maruku/input/linesource.rb, line 56
            def describe
                    s = "At line #{original_line_number(@lines_index)}\n"

                    context = 3 # lines
                    from = [@lines_index-context, 0].max
                    to   = [@lines_index+context, @lines.size-1].min

                    for i in from..to
                            prefix = (i == @lines_index) ? '--> ' : '    ';
                            l = @lines[i]
                            s += "%10s %4s|%s" %
                                    [@lines[i].md_type.to_s, prefix, l]

                            s += "|\n"
                    end

    #               if @parent
    #                       s << "Parent context is: \n"
    #                       s << add_tabs(@parent.describe,1,'|')
    #               end
                    s
            end

ignore_line() click to toggle source

    # File lib/maruku/input/linesource.rb, line 51
    def ignore_line
            raise "Over the rainbow" if @lines_index >= @lines.size
            @lines_index += 1
    end

next_line() click to toggle source

    # File lib/maruku/input/linesource.rb, line 42
    def next_line() @lines[@lines_index+1] end

original_line_number(index) click to toggle source

    # File lib/maruku/input/linesource.rb, line 79
    def original_line_number(index)
            if @parent
                    return index + @parent.original_line_number(@parent_offset)
            else
                    1 + index
            end
    end

shift_line() click to toggle source

    # File lib/maruku/input/linesource.rb, line 44
    def shift_line()
            raise "Over the rainbow" if @lines_index >= @lines.size
            l = @lines[@lines_index]
            @lines_index += 1
            return l
    end

tell_me_the_future() click to toggle source

Returns the type of next line as a string breaks at first :definition

    # File lib/maruku/input/linesource.rb, line 93
    def tell_me_the_future
            s = ""; num_e = 0;
            for i in @lines_index..@lines.size-1
                    c = case @lines[i].md_type
                            when :text; "t"
                            when :empty; num_e+=1; "e"
                            when :definition; "d"
                            else "o"
                    end
                    s += c
                    break if c == "d" or num_e>1
            end
            s
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.