class Juknife::Agent

The agent to execute request and scraping to web page.

Attributes

request_dsl[R]
scraping_dsl[R]

Public Class Methods

request(&block) click to toggle source
# File lib/juknife/agent.rb, line 35
def request(&block)
  @request_dsl = block
end
scraping(&block) click to toggle source
# File lib/juknife/agent.rb, line 39
def scraping(&block)
  @scraping_dsl = block
end

Public Instance Methods

connection(params) click to toggle source
# File lib/juknife/agent.rb, line 16
def connection(params)
  @connection ||= Faraday.new do |b|
    # request middlewares
    b.use Middleware::RequestDSL, params, &self.class.request_dsl
    b.use Faraday::Request::UrlEncoded

    # response middlewares
    b.use Middleware::ScrapingDSL, params, &self.class.scraping_dsl
    b.use Middleware::HTMLParser
    b.use Middleware::HTTPErrorHandler
    b.use FaradayMiddleware::FollowRedirects

    b.adapter :net_http
  end
end
response(params) click to toggle source
# File lib/juknife/agent.rb, line 12
def response(params)
  connection(params).get
end
scrape(params = {}) click to toggle source
# File lib/juknife/agent.rb, line 8
def scrape(params = {})
  response(params).body
end