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