Method: Origami::Reference.parse

Defined in:
lib/origami/reference.rb

.parse(stream, _parser = nil) ⇒ Object

:nodoc:



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/origami/reference.rb', line 46

def self.parse(stream, _parser = nil) #:nodoc:
    scanner = Parser.init_scanner(stream)
    offset = scanner.pos

    if scanner.scan(@@regexp).nil?
        raise InvalidReferenceError, "Bad reference to indirect objet format"
    end

    no = scanner['no'].to_i
    gen = scanner['gen'].to_i

    ref = Reference.new(no, gen)
    ref.file_offset = offset

    ref
end