Class: Prawn::Reference
- Inherits:
-
Object
- Object
- Prawn::Reference
- Defined in:
- lib/prawn/reference.rb
Overview
:nodoc:
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
-
#gen ⇒ Object
Returns the value of attribute gen.
-
#identifier ⇒ Object
readonly
Returns the value of attribute identifier.
-
#offset ⇒ Object
Returns the value of attribute offset.
-
#stream ⇒ Object
Returns the value of attribute stream.
Instance Method Summary collapse
- #<<(data) ⇒ Object
- #compress_stream ⇒ Object
- #compressed? ⇒ Boolean
-
#initialize(id, data, &block) ⇒ Reference
constructor
A new instance of Reference.
- #object ⇒ Object
-
#replace(other_ref) ⇒ Object
Replaces the data and stream with that of other_ref.
- #to_s ⇒ Object
Constructor Details
#initialize(id, data, &block) ⇒ Reference
Returns a new instance of Reference.
18 19 20 21 22 23 24 25 |
# File 'lib/prawn/reference.rb', line 18 def initialize(id, data, &block) @identifier = id @gen = 0 @data = data @compressed = false @on_encode = block @stream = nil end |
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
15 16 17 |
# File 'lib/prawn/reference.rb', line 15 def data @data end |
#gen ⇒ Object
Returns the value of attribute gen.
15 16 17 |
# File 'lib/prawn/reference.rb', line 15 def gen @gen end |
#identifier ⇒ Object (readonly)
Returns the value of attribute identifier.
16 17 18 |
# File 'lib/prawn/reference.rb', line 16 def identifier @identifier end |
#offset ⇒ Object
Returns the value of attribute offset.
15 16 17 |
# File 'lib/prawn/reference.rb', line 15 def offset @offset end |
#stream ⇒ Object
Returns the value of attribute stream.
15 16 17 |
# File 'lib/prawn/reference.rb', line 15 def stream @stream end |
Instance Method Details
#<<(data) ⇒ Object
37 38 39 40 |
# File 'lib/prawn/reference.rb', line 37 def <<(data) raise 'Cannot add data to a stream that is compressed' if @compressed (@stream ||= "") << data end |
#compress_stream ⇒ Object
46 47 48 49 50 51 |
# File 'lib/prawn/reference.rb', line 46 def compress_stream @stream = Zlib::Deflate.deflate(@stream) @data[:Filter] = :FlateDecode @data[:Length] ||= @stream.length @compressed = true end |
#compressed? ⇒ Boolean
53 54 55 |
# File 'lib/prawn/reference.rb', line 53 def compressed? @compressed end |
#object ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/prawn/reference.rb', line 27 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 output << "endobj\n" end |
#replace(other_ref) ⇒ Object
Replaces the data and stream with that of other_ref. Preserves compressed status.
59 60 61 62 63 |
# File 'lib/prawn/reference.rb', line 59 def replace(other_ref) @data = other_ref.data @stream = other_ref.stream @compressed = other_ref.compressed? end |
#to_s ⇒ Object
42 43 44 |
# File 'lib/prawn/reference.rb', line 42 def to_s "#{@identifier} #{gen} R" end |