Sha256: a7a73b46e5b3978bdc8c9511e2bcb47b7ec0bd31f204e42a90548fa51a6c1f37

Contents?: true

Size: 900 Bytes

Versions: 1

Compression:

Stored size: 900 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
  end

  def process(&block)
    instance_eval(&block)
    self
  end
  
  def document
    language_processor.document
  end

  def data
    @data
  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?(method)
    language_processor.respond_to?(method) || super(method)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zebra_printer-0.1.1 lib/zebra_printer_document.rb