Class: Pdfrb::Model::PdfArray
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
Class Method Summary
collapse
Instance Method Summary
collapse
arlington_object
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.
32
33
34
|
# File 'lib/pdfrb/model/pdf_array.rb', line 32
def initialize(arr = [], oid: 0, gen: 0, document: nil)
super(Array(arr), oid: oid, gen: gen, document: document)
end
|
Class Method Details
.apply_arlington_definition(definition) ⇒ Object
ArlingtonBacked hook: array TSVs describe positional element
types (keys "0", "1", ...), so keep the definition whole
rather than merging per-field metadata.
17
18
19
|
# File 'lib/pdfrb/model/pdf_array.rb', line 17
def apply_arlington_definition(definition)
@arlington_definition = definition
end
|
.arlington_definition ⇒ Object
22
23
24
|
# File 'lib/pdfrb/model/pdf_array.rb', line 22
def arlington_definition
@arlington_definition
end
|
.element_field(index) ⇒ Object
FieldDefinition for the element at index, per the TSV.
27
28
29
|
# File 'lib/pdfrb/model/pdf_array.rb', line 27
def element_field(index)
arlington_definition&.field_for(index.to_s)
end
|
Instance Method Details
54
55
56
57
|
# File 'lib/pdfrb/model/pdf_array.rb', line 54
def <<(v)
@value << v
self
end
|
#==(other) ⇒ Object
72
73
74
75
76
|
# File 'lib/pdfrb/model/pdf_array.rb', line 72
def ==(other)
return @value == other.value if other.is_a?(PdfArray)
@value == other
end
|
46
47
48
|
# File 'lib/pdfrb/model/pdf_array.rb', line 46
def [](idx)
@value[idx]
end
|
#[]=(idx, v) ⇒ Object
50
51
52
|
# File 'lib/pdfrb/model/pdf_array.rb', line 50
def []=(idx, v)
@value[idx] = v
end
|
#delete_at(idx) ⇒ Object
64
65
66
|
# File 'lib/pdfrb/model/pdf_array.rb', line 64
def delete_at(idx)
@value.delete_at(idx)
end
|
36
37
38
39
|
# File 'lib/pdfrb/model/pdf_array.rb', line 36
def each(&)
@value.each(&)
self
end
|
#empty? ⇒ Boolean
44
|
# File 'lib/pdfrb/model/pdf_array.rb', line 44
def empty?; @value.empty?; end
|
78
79
80
|
# File 'lib/pdfrb/model/pdf_array.rb', line 78
def inspect
"PdfArray[#{@value.inspect}]"
end
|
#length ⇒ Object
Also known as:
size
41
|
# File 'lib/pdfrb/model/pdf_array.rb', line 41
def length; @value.length; end
|
#push(*items) ⇒ Object
59
60
61
62
|
# File 'lib/pdfrb/model/pdf_array.rb', line 59
def push(*items)
@value.push(*items)
self
end
|
68
69
70
|
# File 'lib/pdfrb/model/pdf_array.rb', line 68
def to_a
@value.dup
end
|