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