Sha256: c0a1271db83575f3549a427bc9d95c2f22795ea53de981461a827812a0425109

Contents?: true

Size: 997 Bytes

Versions: 1

Compression:

Stored size: 997 Bytes

Contents

class ZebraPrinterDocument
  def initialize(data=nil, &block)
    @language = :epl2
    @data = data
    if block_given?
      instance_eval(&block)
    end
  end

  def language(lang)
    @language = lang
    @language_processor = nil
  end

  def language_processor
    @language_processor ||= Languages.const_get(@language.to_s.capitalize).new data
  end

  def process(&block)
    instance_eval(&block)
    self
  end

  def document
    language_processor.document
  end

  def data
    @data
  end

  def to_s
    document
  end

  def to_str
    document
  end

  def method_missing(method,*args,&block)
    if language_processor.respond_to? method
      if block_given?
        language_processor.public_send(method,*args,&block)
      else
        language_processor.public_send(method,*args)
      end
    else
      super(method,*args,&block)
    end
  end

  def respond_to_missing?(method,include_all)
    language_processor.respond_to?(method) || super(method,include_all)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zebra_printer-0.9.0 lib/zebra_printer_document.rb