Skip to content
This repository has been archived by the owner on Aug 18, 2020. It is now read-only.

Commit

Permalink
Now we have something like a working service.
Browse files Browse the repository at this point in the history
  • Loading branch information
h-lame committed Mar 7, 2009
1 parent ecf3fbd commit d98d866
Show file tree
Hide file tree
Showing 10 changed files with 4,484 additions and 0 deletions.
14 changes: 14 additions & 0 deletions lib/api_keys.rb
@@ -0,0 +1,14 @@
require 'yaml'

class ApiKeys
class << self
def init
@keys ||= YAML::load(File.open('./api_keys.yaml'))
end

def key_for(service)
init
@keys[service]['key']
end
end
end
25 changes: 25 additions & 0 deletions lib/services.rb
@@ -0,0 +1,25 @@
require 'yaml'

class Services
class << self

def init
@services ||= YAML::load(File.open('./services.yaml'))
end

def services
init
@services
end

def service_url(service_name, post_code)
init
@services[service_name]['where'].gsub(':post_code', post_code)
end

def local_services
init
@services.select {|_, service_obj| service_obj['internal']}
end
end
end
20 changes: 20 additions & 0 deletions lib/they_work_for_you.rb
@@ -0,0 +1,20 @@
require 'sinatra'
require 'twfy'
require './lib/api_keys.rb'
require 'json'

helpers do
def the_twfy_client
@twfy_client ||= Twfy::Client.new(ApiKeys.key_for('they_work_for_you'))
end

def mp_url(the_mp)
%Q{http://www.theyworkforyou.com/mp/#{the_mp.full_name.downcase.gsub(' ','_')}/#{the_mp.constituency.name.downcase.gsub(' ','_').gsub('&','and')}}
end
end

get '/twfy/mp/:post_code' do
@mp = the_twfy_client.mp(:postcode => params[:post_code])
erb :'twfy/mp'
end

10 changes: 10 additions & 0 deletions one_stop_shop.rb
@@ -1,5 +1,6 @@
require 'rubygems'
require 'sinatra'
require 'lib/services'

helpers do
def urlify_post_code(post_code)
Expand All @@ -15,6 +16,10 @@ def valid_post_code?(post_code)
post_code =~ /^([A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW])\ [0-9][ABD-HJLNP-UW-Z]{2}|(GIR\ 0AA)|(SAN\ TA1)|(BFPO\ (C\/O\ )?[0-9]{1,4})|((ASCN|BBND|[BFS]IQQ|PCRN|STHL|TDCU|TKCA)\ 1ZZ))$/
end

def paramify_post_code(post_code)
post_code.gsub(' ','').downcase
end

def are_we_sorry?
if @sorry
erb :sorry
Expand All @@ -39,6 +44,7 @@ def are_we_sorry?
get '/for/:post_code' do
@post_code = deurlify_post_code(params[:post_code])
if valid_post_code?(@post_code)
@post_code_as_param = paramify_post_code(@post_code)
erb :post_code
else
redirect '/sorry'
Expand All @@ -48,4 +54,8 @@ def are_we_sorry?
get '/sorry' do
@sorry = true
erb :index
end

Services.local_services.map do |service_id, service_obj|
load "./lib/#{service_obj['service_provider']}.rb"
end

0 comments on commit d98d866

Please sign in to comment.