Sha256: 3f090f0ccb5276c5964856194cc219034d1349f57feabf0056488cf1c31f7d32

Contents?: true

Size: 974 Bytes

Versions: 1

Compression:

Stored size: 974 Bytes

Contents

class ReportBuilder
  # Abstract class for generators.
  # A generator is a class which control the output for a builder.
  # On parse_cycle()....
  #
  class Generator
    #PREFIX="none"
    attr_reader :parse_level
    # builder is a ReportBuilder object
    def initialize(builder)
      @builder=builder
      @parse_level=0
    end
    # parse each element of the parameters
    def parse_cycle(container)
      @parse_level+=1
      container.elements.each do |element|
        method=("to_rb_"+self.class::PREFIX).intern
        if element.respond_to? method
          element.send(method, self)
        else
          add_text(element.to_s)
        end
      end
      @parse_level-=1
    end
    def add_text(t)
      raise "Implement this"
    end
  end
  class ElementGenerator
    def initialize(generator,element)
      @element=element
      @generator=generator
    end
  end
end

require 'reportbuilder/generator/text'
require 'reportbuilder/generator/html'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reportbuilder-0.1.0 lib/reportbuilder/generator.rb