class PDF::Extract::ReferenceResolver

Attributes

objects[R]

Public Class Methods

new(document:) click to toggle source
# File lib/pdf/extract/reference_resolver.rb, line 7
def initialize(document:)
  @objects = document.objects
end

Public Instance Methods

lookup(reference) click to toggle source
# File lib/pdf/extract/reference_resolver.rb, line 11
def lookup(reference)
  reference.is_a?(Array) ? lookup_mutiple(reference) : lookup_single(reference)
rescue SystemStackError
  raise PDF::Extract::Error.new("map contains infinite recursion")
end

Private Instance Methods

lookup_mutiple(references) click to toggle source
# File lib/pdf/extract/reference_resolver.rb, line 19
def lookup_mutiple(references)
  (_ = *references).map { |ref| lookup(ref) }.flatten
end
lookup_single(reference) click to toggle source
# File lib/pdf/extract/reference_resolver.rb, line 23
def lookup_single(reference)
  object = objects[reference]
  object.is_a?(Array) ? lookup_mutiple(object) : object
end