Sha256: 2cc7f6fcda1c45dd0d9f09bc4ac6d5e1532be556b5174a35adc51402c6d60afa

Contents?: true

Size: 587 Bytes

Versions: 11

Compression:

Stored size: 587 Bytes

Contents

require "liquidscript/scanner/token"
require "liquidscript/scanner/lexer"

module Liquidscript

  # @todo Stream scanning.
  # um...
  class Scanner

    include Enumerable

    def initialize(source)
      @tokenizer = Lexer.new
      @source = source
    end

    def each
      e = buffer.each

      if block_given?
        e.each(&Proc.new)
      else
        e
      end
    end

    def inspect
      "#<#{self.class.to_s}:#{'0x%08x' % self.object_id}>"
    end

    private

    def buffer
      @_parts ||= begin
        @tokenizer.perform(@source)
      end
    end

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
liquidscript-0.3.1 lib/liquidscript/scanner.rb
liquidscript-0.3.0 lib/liquidscript/scanner.rb
liquidscript-0.2.1 lib/liquidscript/scanner.rb
liquidscript-0.2.0 lib/liquidscript/scanner.rb
liquidscript-0.1.5 lib/liquidscript/scanner.rb
liquidscript-0.1.4 lib/liquidscript/scanner.rb
liquidscript-0.1.3 lib/liquidscript/scanner.rb
liquidscript-0.1.2 lib/liquidscript/scanner.rb
liquidscript-0.1.1 lib/liquidscript/scanner.rb
liquidscript-0.1.0 lib/liquidscript/scanner.rb
liquidscript-0.0.1 lib/liquidscript/scanner.rb