Class: HikiDoc::LineInput

### Home Classes Methods

### In Files

- lib/hikidoc.rb

### Parent

Object

### Methods

- ::new
- #break
- #each
- #eof?
- #getblock
- #getlines_until
- #getlines_while
- #gets
- #gets_if
- #gets_unless
- #inspect
- #lineno
- #next?
- #peek
- #skip_blank_lines
- #span
- #ungets
- #until_match
- #until_terminator
- #while_match

### Class/Module Index

Quicksearch

- HikiDoc
- HikiDoc::Error
- HikiDoc::HTMLOutput
- HikiDoc::LineInput
- HikiDoc::UnexpectedError

No matching classes.

# HikiDoc::LineInput

### Public Class Methods

new(f) click to toggle source

    # File lib/hikidoc.rb, line 764
    def initialize(f)
      @input = f
      @buf = []
      @lineno = 0
      @eof_p = false
    end

### Public Instance Methods

break(re) click to toggle source
Alias for: getlines_until
each() click to toggle source

    # File lib/hikidoc.rb, line 843
    def each
      while line = gets()
        yield line
      end
    end

eof?() click to toggle source

    # File lib/hikidoc.rb, line 775
    def eof?
      @eof_p
    end

getblock(term_re) click to toggle source

    # File lib/hikidoc.rb, line 899
    def getblock(term_re)
      buf = []
      until_terminator(term_re) do |line|
        buf.push line
      end
      buf
    end

getlines_until(re) click to toggle source

    # File lib/hikidoc.rb, line 881
    def getlines_until(re)
      buf = []
      until_match(re) do |line|
        buf.push line
      end
      buf
    end

Also aliased as: break
getlines_while(re) click to toggle source

    # File lib/hikidoc.rb, line 860
    def getlines_while(re)
      buf = []
      while_match(re) do |line|
        buf.push line
      end
      buf
    end

Also aliased as: span
gets() click to toggle source

    # File lib/hikidoc.rb, line 783
    def gets
      unless @buf.empty?
        @lineno += 1
        return @buf.pop
      end
      return nil if @eof_p   # to avoid ARGF blocking.
      line = @input.gets
      line = line.sub(/\r\n/, "\n") if line
      @eof_p = line.nil?
      @lineno += 1
      line
    end

gets_if(re) click to toggle source

    # File lib/hikidoc.rb, line 825
    def gets_if(re)
      line = gets()
      if not line or not (re =~ line)
        ungets line
        return nil
      end
      line
    end

gets_unless(re) click to toggle source

    # File lib/hikidoc.rb, line 834
    def gets_unless(re)
      line = gets()
      if not line or re =~ line
        ungets line
        return nil
      end
      line
    end

inspect() click to toggle source

    # File lib/hikidoc.rb, line 771
    def inspect
      "\#<#{self.class} file=#{@input.inspect} line=#{lineno()}>"
    end

lineno() click to toggle source

    # File lib/hikidoc.rb, line 779
    def lineno
      @lineno
    end

next?() click to toggle source

    # File lib/hikidoc.rb, line 809
    def next?
      peek() ? true : false
    end

peek() click to toggle source

    # File lib/hikidoc.rb, line 803
    def peek
      line = gets()
      ungets line if line
      line
    end

skip_blank_lines() click to toggle source

    # File lib/hikidoc.rb, line 813
    def skip_blank_lines
      n = 0
      while line = gets()
        unless line.strip.empty?
          ungets line
          return n
        end
        n += 1
      end
      n
    end

span(re) click to toggle source
Alias for: getlines_while
ungets(line) click to toggle source

    # File lib/hikidoc.rb, line 796
    def ungets(line)
      return unless line
      @lineno -= 1
      @buf.push line
      line
    end

until_match(re) click to toggle source

    # File lib/hikidoc.rb, line 870
    def until_match(re)
      while line = gets()
        if re =~ line
          ungets line
          return
        end
        yield line
      end
      nil
    end

until_terminator(re) click to toggle source

    # File lib/hikidoc.rb, line 891
    def until_terminator(re)
      while line = gets()
        return if re =~ line   # discard terminal line
        yield line
      end
      nil
    end

while_match(re) click to toggle source

    # File lib/hikidoc.rb, line 849
    def while_match(re)
      while line = gets()
        unless re =~ line
          ungets line
          return
        end
        yield line
      end
      nil
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.