class PDFWalker::Walker::DumpView

Public Class Methods

new(parent) click to toggle source
Calls superclass method
# File lib/pdfwalker/hexview.rb, line 34
def initialize(parent)
    @parent = parent
    super()

    set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC)

    @current_obj = nil

    @view = HexEditor.new
    @view.show_offsets(true)

    add_with_viewport @view
end

Public Instance Methods

clear() click to toggle source
# File lib/pdfwalker/hexview.rb, line 48
def clear
    @view.set_data ''
end
load(object) click to toggle source
# File lib/pdfwalker/hexview.rb, line 52
def load(object)
    return if @current_obj.equal?(object)

    self.clear

    case object
    when Origami::Stream
        load_stream(object)
    when Origami::String
        load_string(object)
    end

    @current_obj = object
end

Private Instance Methods

load_stream(object) click to toggle source
# File lib/pdfwalker/hexview.rb, line 69
def load_stream(object)
    begin
        @view.set_data(object.data)
    rescue Origami::Filter::Error
        @view.set_data($!.input_data) if $!.input_data

        @parent.error("#{$!.class}: #{$!.message}") unless object.filters == [ :DCTDecode ]
    end
end
load_string(object) click to toggle source
# File lib/pdfwalker/hexview.rb, line 79
def load_string(object)
    @view.set_data(object.value)
end