Class: Twfy::Client
- Inherits:
-
Object
show all
- Defined in:
- lib/twfy.rb
Defined Under Namespace
Classes: APIError, Error, ServiceArgumentError
Instance Method Summary
collapse
Constructor Details
#initialize(api_key, log_to = $stderr) ⇒ Client
Returns a new instance of Client.
23
24
25
26
|
# File 'lib/twfy.rb', line 23
def initialize(api_key, log_to=$stderr)
@api_key = api_key
@logger = Logger.new(log_to)
end
|
Instance Method Details
103
104
105
|
# File 'lib/twfy.rb', line 103
def (params={})
service :getComments, validate(params, :allow => [:date, :search, :user_id, :pid, :page, :num])
end
|
#committee(params = {}) ⇒ Object
78
79
80
|
# File 'lib/twfy.rb', line 78
def committee(params={})
service :getCommittee, validate(params, :require => :name, :allow => :date)
end
|
#constituencies(params = {}) ⇒ Object
42
43
44
|
# File 'lib/twfy.rb', line 42
def constituencies(params={})
service :getConstituencies, validate(params, :allow => [:date, :search, :longitude, :latitude, :distance]), Constituency
end
|
#constituency(params = {}) ⇒ Object
38
39
40
|
# File 'lib/twfy.rb', line 38
def constituency(params={})
service :getConstituency, validate(params, :require => :postcode), Constituency
end
|
#convert_url(params = {}) ⇒ Object
32
33
34
35
36
|
# File 'lib/twfy.rb', line 32
def convert_url(params={})
service :convertURL, validate(params, :require => :url) do |value|
URI.parse(value['url'])
end
end
|
#debates(params = {}) ⇒ Object
82
83
84
85
86
87
|
# File 'lib/twfy.rb', line 82
def debates(params={})
service :getDebates, validate(params, :require => :type, :require_one_of => [:date, :person, :search, :gid], :allow_dependencies => {
:search => [:order, :page, :num],
:person => [:order, :page, :num]
})
end
|
#geometry(params = {}) ⇒ Object
74
75
76
|
# File 'lib/twfy.rb', line 74
def geometry(params={})
service :getGeometry, validate(params, :allow => :name), Geometry
end
|
#log(message, level = :info) ⇒ Object
28
29
30
|
# File 'lib/twfy.rb', line 28
def log(message, level=:info)
@logger.send(level, message) if $DEBUG
end
|
#lord(params = {}) ⇒ Object
58
59
60
|
# File 'lib/twfy.rb', line 58
def lord(params={})
service :getLord, validate(params, :require => :id)
end
|
#lords(params = {}) ⇒ Object
62
63
64
|
# File 'lib/twfy.rb', line 62
def lords(params={})
service :getLords, validate(params, :allow => [:date, :search])
end
|
#mlas(params = {}) ⇒ Object
66
67
68
|
# File 'lib/twfy.rb', line 66
def mlas(params={})
service :getMLAs, validate(params, :allow => [:date, :party, :search])
end
|
#mp(params = {}) ⇒ Object
46
47
48
|
# File 'lib/twfy.rb', line 46
def mp(params={})
service :getMP, validate(params, :allow => [:postcode, :constituency, :id, :always_return]), MP
end
|
#mp_info(params = {}) ⇒ Object
50
51
52
|
# File 'lib/twfy.rb', line 50
def mp_info(params={})
service :getMPInfo, validate(params, :require => :id)
end
|
#mps(params = {}) ⇒ Object
54
55
56
|
# File 'lib/twfy.rb', line 54
def mps(params={})
service :getMPs, validate(params, :allow => [:date, :search]), MP
end
|
#msps(params = {}) ⇒ Object
70
71
72
|
# File 'lib/twfy.rb', line 70
def msps(params={})
service :getMSPs, validate(params, :allow => [:date, :party, :search])
end
|
#service(name, params = {}, target = OpenStruct, &block) ⇒ Object
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# File 'lib/twfy.rb', line 107
def service(name, params={}, target=OpenStruct, &block)
log "Calling service #{name}"
url = BASE + name.to_s
url.query = build_query(params)
result = JSON.parse(url.read)
log result.inspect
unless result.kind_of?(Enumerable)
raise Error, "Could not handle result: #{result.inspect}"
end
if result.kind_of?(Hash) && result['error']
raise APIError, result['error'].to_s
else
structure result, block || target
end
end
|
#wms(params = {}) ⇒ Object
96
97
98
99
100
101
|
# File 'lib/twfy.rb', line 96
def wms(params={})
service :getWMS, validate(params, :require_one_of => [:date, :person, :search, :gid], :allow_dependencies => {
:search => [:order, :page, :num],
:person => [:order, :page, :num]
} )
end
|
#wrans(params = {}) ⇒ Object
89
90
91
92
93
94
|
# File 'lib/twfy.rb', line 89
def wrans(params={})
service :getWrans, validate(params, :require_one_of => [:date, :person, :search, :gid], :allow_dependencies => {
:search => [:order, :page, :num],
:person => [:order, :page, :num]
} )
end
|