class PDF::Reader::RegisterReceiver
An example receiver that just records all callbacks generated by parsing a PDF
file.
Useful for testing the contents of a file in an rspec/test-unit suite.
Usage:
PDF::Reader.open("somefile.pdf") do |reader| receiver = PDF::Reader::RegisterReceiver.new reader.page(1).walk(receiver) callback = receiver.first_occurance_of(:show_text) callback[:args].first.should == "Hellow World" end
Attributes
callbacks[RW]
Public Class Methods
new()
click to toggle source
# File lib/pdf/reader/register_receiver.rb, line 27 def initialize @callbacks = [] end
Public Instance Methods
all(methodname)
click to toggle source
return the details for every time the specified callback was fired
# File lib/pdf/reader/register_receiver.rb, line 45 def all(methodname) callbacks.select { |cb| cb[:name] == methodname } end
all_args(methodname)
click to toggle source
# File lib/pdf/reader/register_receiver.rb, line 49 def all_args(methodname) all(methodname).map { |cb| cb[:args] } end
count(methodname)
click to toggle source
count the number of times a callback fired
# File lib/pdf/reader/register_receiver.rb, line 40 def count(methodname) callbacks.count { |cb| cb[:name] == methodname} end
final_occurance_of(methodname)
click to toggle source
return the details for the final time the specified callback was fired
# File lib/pdf/reader/register_receiver.rb, line 59 def final_occurance_of(methodname) all(methodname).last end
first_occurance_of(methodname)
click to toggle source
return the details for the first time the specified callback was fired
# File lib/pdf/reader/register_receiver.rb, line 54 def first_occurance_of(methodname) callbacks.find { |cb| cb[:name] == methodname } end
method_missing(methodname, *args)
click to toggle source
# File lib/pdf/reader/register_receiver.rb, line 35 def method_missing(methodname, *args) callbacks << {:name => methodname.to_sym, :args => args} end
respond_to?(meth)
click to toggle source
# File lib/pdf/reader/register_receiver.rb, line 31 def respond_to?(meth) true end
series(*methods)
click to toggle source
return the first occurance of a particular series of callbacks
# File lib/pdf/reader/register_receiver.rb, line 64 def series(*methods) return nil if methods.empty? indexes = (0..(callbacks.size-1)) method_indexes = (0..(methods.size-1)) indexes.each do |idx| count = methods.size method_indexes.each do |midx| count -= 1 if callbacks[idx+midx] && callbacks[idx+midx][:name] == methods[midx] end if count == 0 return callbacks[idx, methods.size] end end nil end