require 'tap/task' require 'tap/mechanize/agent' module Tap module Mechanize class Request < Tap::Task nest :mechanize, Agent, :instance_reader => :mechanize # the mechanize agent # Returns the mechanize agent. #-- # Overrides the default reader to ensure the agent log is set. def mechanize @mechanize ||= begin agent = Agent.new agent.log = app.logger agent end end # Submits each request in order and returns the final Page. # Returns nil if no requests are specified. def process(requests) unless requests.kind_of?(Array) requests = [requests] end requests.inject(nil) do |last_page, request| mechanize.fetch(request) end end end end end