Class: Pdfrb::Model::PdfArray

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/pdfrb/model/pdf_array.rb

Overview

Wraps a Ruby Array of PDF values. Subclass of Object so it can carry oid/gen when stored as an indirect object. Preserves insertion order and supports type-aware wrapping on access when nested inside a typed Dictionary (field-driven).

Instance Attribute Summary

Attributes inherited from Object

#document, #gen, #oid, #value

Instance Method Summary collapse

Methods inherited from Object

define_type, #deref, #indirect?, #must_be_indirect?, #pdf_type, pdf_type

Constructor Details

#initialize(arr = [], oid: 0, gen: 0, document: nil) ⇒ PdfArray

Returns a new instance of PdfArray.



12
13
14
# File 'lib/pdfrb/model/pdf_array.rb', line 12

def initialize(arr = [], oid: 0, gen: 0, document: nil)
  super(Array(arr), oid: oid, gen: gen, document: document)
end

Instance Method Details

#<<(v) ⇒ Object



34
35
36
37
# File 'lib/pdfrb/model/pdf_array.rb', line 34

def <<(v)
  @value << v
  self
end

#==(other) ⇒ Object



52
53
54
55
56
# File 'lib/pdfrb/model/pdf_array.rb', line 52

def ==(other)
  return @value == other.value if other.is_a?(PdfArray)

  @value == other
end

#[](idx) ⇒ Object



26
27
28
# File 'lib/pdfrb/model/pdf_array.rb', line 26

def [](idx)
  @value[idx]
end

#[]=(idx, v) ⇒ Object



30
31
32
# File 'lib/pdfrb/model/pdf_array.rb', line 30

def []=(idx, v)
  @value[idx] = v
end

#delete_at(idx) ⇒ Object



44
45
46
# File 'lib/pdfrb/model/pdf_array.rb', line 44

def delete_at(idx)
  @value.delete_at(idx)
end

#each(&block) ⇒ Object



16
17
18
19
# File 'lib/pdfrb/model/pdf_array.rb', line 16

def each(&block)
  @value.each(&block)
  self
end

#empty?Boolean

Returns:

  • (Boolean)


24
# File 'lib/pdfrb/model/pdf_array.rb', line 24

def empty?; @value.empty?; end

#inspectObject



58
59
60
# File 'lib/pdfrb/model/pdf_array.rb', line 58

def inspect
  "PdfArray[#{@value.inspect}]"
end

#lengthObject Also known as: size



21
# File 'lib/pdfrb/model/pdf_array.rb', line 21

def length; @value.length; end

#push(*items) ⇒ Object



39
40
41
42
# File 'lib/pdfrb/model/pdf_array.rb', line 39

def push(*items)
  @value.push(*items)
  self
end

#to_aObject



48
49
50
# File 'lib/pdfrb/model/pdf_array.rb', line 48

def to_a
  @value.dup
end