technicalpickles-daywalker 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION.yml
CHANGED
data/lib/daywalker.rb
CHANGED
data/lib/daywalker/legislator.rb
CHANGED
@@ -77,7 +77,9 @@ module Daywalker
|
|
77
77
|
# Find one or many legislators, based on a set of conditions. See
|
78
78
|
# VALID_ATTRIBUTES for possible attributes you can search for.
|
79
79
|
#
|
80
|
-
# If you want one legislators, and you expect there is exactly one
|
80
|
+
# If you want one legislators, and you expect there is exactly one
|
81
|
+
# legislator, use :one. An error will be raised if there are more than
|
82
|
+
# one result. An ArgumentErrror will be raised if multiple results come back.
|
81
83
|
#
|
82
84
|
# Daywalker::Legislator.find(:one, :state => 'NY', :district => 4)
|
83
85
|
#
|
@@ -115,7 +117,6 @@ module Daywalker
|
|
115
117
|
super
|
116
118
|
end
|
117
119
|
end
|
118
|
-
|
119
120
|
|
120
121
|
def self.respond_to?(method_id) # :nodoc:
|
121
122
|
match = DynamicFinderMatch.new(method_id)
|
@@ -128,6 +129,13 @@ module Daywalker
|
|
128
129
|
|
129
130
|
protected
|
130
131
|
|
132
|
+
def self.handle_bad_request(body) # :nodoc:
|
133
|
+
case body
|
134
|
+
when "Multiple Legislators Returned" then raise(ArgumentError, "The conditions provided returned multiple results, by only one is expected")
|
135
|
+
else super
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
131
139
|
|
132
140
|
def self.create_finder_method(method, finder, attribute_names) # :nodoc:
|
133
141
|
class_eval %{
|
@@ -76,6 +76,18 @@ describe Daywalker::Legislator do
|
|
76
76
|
}.should raise_error(Daywalker::BadApiKey)
|
77
77
|
end
|
78
78
|
end
|
79
|
+
|
80
|
+
describe 'by state and district, with multiple results' do
|
81
|
+
before do
|
82
|
+
register_uri_with_response 'legislators.get.xml?state=NY&title=Sen&apikey=redacted', 'legislators_find_one_by_ny_senators.xml'
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should raise an error about multiple legislators returned' do
|
86
|
+
lambda {
|
87
|
+
Daywalker::Legislator.find(:one, :state => 'NY', :title => :senator)
|
88
|
+
}.should raise_error(ArgumentError, "The conditions provided returned multiple results, by only one is expected")
|
89
|
+
end
|
90
|
+
end
|
79
91
|
end
|
80
92
|
end
|
81
93
|
|
@@ -0,0 +1,9 @@
|
|
1
|
+
HTTP/1.1 400 Bad Request
|
2
|
+
Date: Fri, 13 Feb 2009 22:01:26 GMT
|
3
|
+
Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch11
|
4
|
+
Content-Type: text/html; charset=utf-8
|
5
|
+
Vary: Accept-Encoding
|
6
|
+
Connection: close
|
7
|
+
Transfer-Encoding: chunked
|
8
|
+
|
9
|
+
Multiple Legislators Returned
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: technicalpickles-daywalker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Nichols
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-02-
|
12
|
+
date: 2009-02-13 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -50,6 +50,7 @@ files:
|
|
50
50
|
- spec/fixtures/legislators_find_by_ny_district_4_bad_api.xml
|
51
51
|
- spec/fixtures/legislators_find_ny_senators.xml
|
52
52
|
- spec/fixtures/legislators_find_ny_senators_bad_api.xml
|
53
|
+
- spec/fixtures/legislators_find_one_by_ny_senators.xml
|
53
54
|
- spec/spec_helper.rb
|
54
55
|
has_rdoc: true
|
55
56
|
homepage: http://github.com/technicalpickles/daywalker
|