/usr/lib/ruby/vendor_ruby/pdf/reader/abstract_strategy.rb is in ruby-pdf-reader 1.3.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | # coding: utf-8
class PDF::Reader
# DEPRECATED: this class was deprecated in version 0.11.0 and will
# eventually be removed
class AbstractStrategy # :nodoc:
def initialize(ohash, receivers, options = {})
@ohash, @options = ohash, options
if receivers.is_a?(Array)
@receivers = receivers
else
@receivers = [receivers]
end
end
private
def options
@options || {}
end
# calls the name callback method on the receiver class with params as the arguments
#
def callback (name, params=[])
@receivers.each do |receiver|
receiver.send(name, *params) if receiver.respond_to?(name)
end
end
# strings outside of page content should be in either PDFDocEncoding or UTF-16.
def decode_strings(obj)
case obj
when String then
if obj[0,2].unpack("C*").slice(0,2) == [254,255]
PDF::Reader::Encoding.new(:UTF16Encoding).to_utf8(obj[2, obj.size])
else
PDF::Reader::Encoding.new(:PDFDocEncoding).to_utf8(obj)
end
when Hash then obj.each { |key,val| obj[key] = decode_strings(val) }
when Array then obj.collect { |item| decode_strings(item) }
else
obj
end
end
def info
ohash.object(trailer[:Info])
end
def info?
info ? true : false
end
def ohash
@ohash
end
def pages
ohash.object(root[:Pages])
end
def pages?
pages ? true : false
end
def root
ohash.object(trailer[:Root])
end
def root?
root ? true : false
end
def trailer
ohash.trailer
end
end
end
|