= OldBill
OldBill gives you a nice ruby wrapper for the {police.uk API}[http://police.uk]
== 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: http://policeapi2.rkh.co.uk/api/docs/
Gemcutter for the gem: http://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