Sha256: d72fba64126ab3730732c29255f3ed9b6b31ec7026e7376932d9d9275961d81b

Contents?: true

Size: 877 Bytes

Versions: 1

Compression:

Stored size: 877 Bytes

Contents

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tap-mechanize-0.6.0 lib/tap/mechanize/request.rb