Ruby Wrapper For the Police UK API
Ruby
Permalink
Failed to load latest commit information.
autotest first commit Mar 23, 2011
lib
spec first commit Mar 23, 2011
.gitignore first commit Mar 23, 2011
.rspec first commit Mar 23, 2011
Gemfile first commit Mar 23, 2011
README.rdoc update readme Mar 24, 2011
Rakefile first commit Mar 23, 2011
oldbill.gemspec

README.rdoc

OldBill

OldBill gives you a nice ruby wrapper for the police.uk API

It allows you to hook into the new Police API service to find out about crime in your local area.

The Police API allows you to download data about crime localised to your area within a date range, and is data direct from the UK police service. Enjoy!

Idiomatic Ruby

Concrete classes and methods modelling Police data

Quickstart

@session = OldBill.session.create(:username => "username", :password => "password")

@session.locate(52.6397278, -1.1322921).crimes_by_month

Defaults:

caching                    # => true (boolean)
expires_in                 # => 60*60*24 (seconds)
cache                      # => Moneta::Memory.new "(Moneta Supported Cache) http://github.com/wycats/moneta
server                     # => "api-stage.carboncalculated.com" (string)
api_version                #=>  "v1" (string)
logging                    # => true (boolean)

This is overriding the defaults

@session = OldBill::Session.create(
  :username => "username",
  :password => "password"
  :cache => Moneta::S3.new(:access_key_id => ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], :bucket => 'carbon')
  :expires_in => 60*60*24*14
)

This has created a session with S3 Moneta cache that expires in 14 days

Resources

Police API for code: policeapi2.rkh.co.uk/api/docs/

Gemcutter for the gem: gemcutter.org/gems/oldbill

Using OldBill

The API is separated into 2 area neighbourhoods and crime

Forces

@session = OldBill.session.create(:username => "username", :password => "password")
@session.forces

Crimes

@session = OldBill.session.create(:username => "username", :password => "password")

@session.crimes_by_month("leicestershire", "C01")

@session.street_level_crimes(52.6397278, -1.1322921)

@session.crime_categories

Neighbourhoods

@session = OldBill.session.create(:username => "username", :password => "password")

@session.neighbourhoods("leicestershire")

@session.neighbourhood("leicestershire", "C01")

You can then call methods on the neighbourhood

@session.neighbourhood("leicestershire", "C01").street_level_crimes
@session.neighbourhood("leicestershire", "C01").crimes_by_month
@session.neighbourhood("leicestershire", "C01").events
@session.neighbourhood("leicestershire", "C01").police_officers

Locate A Neighbourhood

@session = OldBill.session.create(:username => "username", :password => "password")
@session.locate(52.6397278, -1.1322921)

@session.locate(52.6397278, -1.1322921).events
@session.locate(52.6397278, -1.1322921).crimes_by_month
@session.locate(52.6397278, -1.1322921).police_officers
@session.locate(52.6397278, -1.1322921).full_neighbourhood.street_level_crimes