DubDubDub

World wide web dubstep... and this is our theme song.

Description

So what the hell this? This is a layer for two very useful http libraries: rest-client and mechanize. If you do any sort of web crawling, browsing, URL following and want to consolidate all your tools in one library, then this one's for you. And if you're serious about that stuff, you're probably using proxies. DubDubDub makes it easy to configure proxies for everything you do.

Install

gem install dubdubdub

Basics

www = DubDubDub.new

# Uses rest-client and returns a Nokogiri::Document
www.crawl "http://google.com"

# Uses mechanize and returns a Mechanize::Page
www.browse "http://google.com"

# Follows and returns the end URL
www.follow "http://bit.ly/abcdefg"

# Be RESTful
www.get "http://google.com"
www.post "http://google.com", {}
www.delete "http://google.com", {}

Proxies

www = DubDubDub.new(proxy: "1.2.3.4:80")

# Now all requests will use the proxy
www.crawl "http://google.com"

Configuration

Set a global proxy to use.

DubDubDub.configure do |config|
  config.proxy = "1.2.3.4:8080"
end

www = DubDubDub.new(proxy: true)

Be fancy and customize the proxies you want to use by passing in a block which will be called when using a proxy.

DubDubDub.configure do |config|
  config.proxy do
    ["1.2.3.4:8080", "1.2.3.4:80"].sample
  end
end

www = DubDubDub.new(proxy: true)
www.proxy   # => 1.2.3.4:8080 OR 1.2.3.4:80

Ignore all proxies (useful for testing).

DubDubDub.configure do |config|
  config.ignore_proxy = true
end