cupakromer/fetchers

View on GitHub
README.md

Summary

Maintainability
Test Coverage
Web API Fetchers Project
========================

[![Build Status](https://secure.travis-ci.org/cupakromer/fetchers.png?branch=master)](http://travis-ci.org/cupakromer/fetchers) [![Dependency Status](https://gemnasium.com/cupakromer/fetchers.png?travis)](https://gemnasium.com/cupakromer/fetchers) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/cupakromer/fetchers)


Tasks
-----
1. Look through http://programmableweb.com for publicly-accessible APIs
   that I'd like to experiment with. Write a class like the sample
`Fetchers::Stock` provided that pulls data from them and converts the
results into a hash.

2. If I'm feeling really ambitious, sign up for a Microsoft Bing Maps
   Key, and write a class that counts the number of severe traffic
incidents occurring in and around Baltimore, MD. The Bing traffic API is
documented here:
> http://msdn.microsoft.com/en-us/library/hh441726.aspx


Chosen APIs (Fetchers)
----------------------
* #### Vimeo ####

  Chosen as it has a public API that does not require registration. Also
allows for requesting data in JSON format.

* #### Etsy ####

  Requires registration and an API key. Wanted to try my hand at using an
API key at the same time creating something my wife could potentially use.

* #### URL Status ####

  A simple fetcher that attempts to connect to a URL and returns:
    * Code 20x: { available: true }
    * Anything Else: { available: false }
      - This includes handling timeouts
      - Rescuing any exceptions

* #### MapQuest Traffic ####


* #### Travis-CI ####


Addtional Features
------------------
* Support HTTPS
  - Fetcher::Base#fetch should fully support an HTTPS url passed in
  - Ammend Fetcher::Base to provide a 'secure_fetch' which forces HTTPS
* Support handling timeouts after 30 seconds by default (but leave
  configurable)