lib/prawn/reference.rb in prawn-0.3.0 vs lib/prawn/reference.rb in prawn-0.4.0

- old
+ new

@@ -13,18 +13,20 @@ class Reference #:nodoc: attr_accessor :gen, :data, :offset attr_reader :identifier, :stream - def initialize(id,data) + def initialize(id, data, &block) @identifier = id @gen = 0 @data = data @compressed = false + @on_encode = block end def object + @on_encode.call(self) if @on_encode output = "#{@identifier} #{gen} obj\n" << Prawn::PdfObject(data) << "\n" if @stream output << "stream\n" << @stream << "\nendstream\n" end @@ -41,16 +43,17 @@ end def compress_stream @stream = Zlib::Deflate.deflate(@stream) @data[:Filter] = :FlateDecode + @data[:Length] ||= @stream.length @compressed = true end end - + module_function - def Reference(*args) #:nodoc: - Reference.new(*args) + def Reference(*args, &block) #:nodoc: + Reference.new(*args, &block) end end