ael_tracker 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +103 -0
- data/Rakefile +8 -0
- data/ael_tracker.gemspec +29 -0
- data/lib/ael_tracker.rb +8 -0
- data/lib/ael_tracker/bill.rb +38 -0
- data/lib/ael_tracker/version.rb +3 -0
- data/spec/fixtures/cassettes/bill.yml +169 -0
- data/spec/lib/bill_spec.rb +62 -0
- data/spec/spec_helper.rb +10 -0
- metadata +160 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9666e7cfa90c8f688671ffdc74ac24a9247b66be
|
4
|
+
data.tar.gz: 730c065639d6c661a42959400fc6dc7b5a051fb4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4a4a630afdc0b7064762fec859d7697ec1b41d7526f82f4c0e205f1104afba9164f367b79cd561ffaa32ed708902459d5eceaa2b8cac660c2727353f77e6d311
|
7
|
+
data.tar.gz: 1811968d5c9b287cf7b041695d9bf2c02d08a59625ce6eb4d29f12a7937cf025b4b4ddd2f3df10af0f05966b4c7d9ea6a68d90925e0e39945d383be1ef28ff50
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Bradley Sheehan
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
# AEL Tracker
|
2
|
+
|
3
|
+
A little gem that integrates with the AelTracker API. From the official site: http://www.aeltracker.org/api/:
|
4
|
+
|
5
|
+
>The Advanced Energy Legislation Tracker database contains information for advanced energy legislation across all 50 states plus District of Columbia for free to any user.
|
6
|
+
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's Gemfile:
|
11
|
+
|
12
|
+
$ source 'https://rubygems.org'
|
13
|
+
|
14
|
+
$ gem 'ael_tracker'
|
15
|
+
|
16
|
+
And then execute:
|
17
|
+
|
18
|
+
$ bundle
|
19
|
+
|
20
|
+
Or install it yourself as:
|
21
|
+
|
22
|
+
$ gem install ael_tracker
|
23
|
+
|
24
|
+
##Set Up
|
25
|
+
|
26
|
+
Include the following line in your ruby environment,
|
27
|
+
before the code:
|
28
|
+
|
29
|
+
$ require 'ael_tracker'
|
30
|
+
|
31
|
+
## Usage
|
32
|
+
|
33
|
+
The ael_tracker gem does not yet fully wrap the AelTracker API. What it does allow you to do is find bill specific information using the bill's id in the AEL Tracker database.
|
34
|
+
|
35
|
+
To do this, create a new instance of Bill, passing in the bill id. Then, the following methods are available for obtaining information about this specific bill:
|
36
|
+
|
37
|
+
bill_id
|
38
|
+
|
39
|
+
os_bill_id
|
40
|
+
|
41
|
+
os_chamber
|
42
|
+
|
43
|
+
os_session
|
44
|
+
|
45
|
+
time_stamp_creation
|
46
|
+
|
47
|
+
time_stamp_update
|
48
|
+
|
49
|
+
time_stamp_news_google
|
50
|
+
|
51
|
+
time_stamp_news_yahoo
|
52
|
+
|
53
|
+
time_stamp_os_check
|
54
|
+
|
55
|
+
auto_time_os_update
|
56
|
+
|
57
|
+
title
|
58
|
+
|
59
|
+
chamber_name
|
60
|
+
|
61
|
+
number
|
62
|
+
|
63
|
+
state
|
64
|
+
|
65
|
+
year_filed
|
66
|
+
|
67
|
+
os_date_passed_lower
|
68
|
+
|
69
|
+
os_date_passed_upper
|
70
|
+
|
71
|
+
os_date_signed
|
72
|
+
|
73
|
+
os_status
|
74
|
+
|
75
|
+
policy_category
|
76
|
+
|
77
|
+
summary
|
78
|
+
|
79
|
+
actions
|
80
|
+
|
81
|
+
votes
|
82
|
+
|
83
|
+
sponsors
|
84
|
+
|
85
|
+
versions
|
86
|
+
|
87
|
+
#####For example:
|
88
|
+
|
89
|
+
<pre><code>
|
90
|
+
bill = AelTracker::Bill.new(1)
|
91
|
+
|
92
|
+
bill.state # returns "Alabama"
|
93
|
+
bill.poicy_category # returns "Infrastructure"
|
94
|
+
</code></pre>
|
95
|
+
|
96
|
+
|
97
|
+
## Contributing
|
98
|
+
|
99
|
+
1. Fork it
|
100
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
101
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
102
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
103
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/ael_tracker.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'ael_tracker/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "ael_tracker"
|
8
|
+
spec.version = AelTracker::VERSION
|
9
|
+
spec.authors = ["Bradley Sheehan"]
|
10
|
+
spec.email = ["bradpsheehan@gmail.com"]
|
11
|
+
spec.description = %q{A little gem that integrates with the AelTracker API. From the official site: http://www.aeltracker.org/api. The AelTracker (i.e. Advanced Energy Legislation Tracker) API provides methods for obtaining basic information about advanced energy legislation.}
|
12
|
+
spec.summary = %q{Ruby wrapper for Advanced Energy Legislation Tracker API.}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.add_development_dependency "rspec"
|
17
|
+
spec.add_development_dependency "vcr"
|
18
|
+
spec.add_development_dependency "webmock"
|
19
|
+
spec.add_runtime_dependency 'httparty'
|
20
|
+
spec.add_runtime_dependency 'json'
|
21
|
+
|
22
|
+
spec.files = `git ls-files`.split($/)
|
23
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
24
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
25
|
+
spec.require_paths = ["lib"]
|
26
|
+
|
27
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
28
|
+
spec.add_development_dependency "rake"
|
29
|
+
end
|
data/lib/ael_tracker.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require "httparty"
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
module AelTracker
|
5
|
+
class Bill
|
6
|
+
|
7
|
+
attr_accessor :id
|
8
|
+
|
9
|
+
include HTTParty
|
10
|
+
|
11
|
+
base_uri "http://www.aeltracker.org/api"
|
12
|
+
|
13
|
+
def initialize(bill_id)
|
14
|
+
self.id = bill_id
|
15
|
+
end
|
16
|
+
|
17
|
+
def profile
|
18
|
+
@profile ||= get_profile
|
19
|
+
end
|
20
|
+
|
21
|
+
def method_missing(name, *args, &block)
|
22
|
+
if profile.has_key?(name.to_s)
|
23
|
+
profile[name.to_s]
|
24
|
+
else
|
25
|
+
super
|
26
|
+
# "Hey there, #{name} is not an attribute of bill in our records."
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def get_profile
|
33
|
+
a = self.class.get "/bills/#{self.id}"
|
34
|
+
JSON.parse( a.parsed_response )
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://www.aeltracker.org/api/bills/1
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Date:
|
16
|
+
- Wed, 25 Sep 2013 17:39:49 GMT
|
17
|
+
Server:
|
18
|
+
- Apache/2.2.14 (Ubuntu)
|
19
|
+
X-Powered-By:
|
20
|
+
- PHP/5.3.2-1ubuntu4.21
|
21
|
+
Vary:
|
22
|
+
- Accept-Encoding
|
23
|
+
Transfer-Encoding:
|
24
|
+
- chunked
|
25
|
+
Content-Type:
|
26
|
+
- text/html
|
27
|
+
body:
|
28
|
+
encoding: UTF-8
|
29
|
+
string: '{"bill_id":"1","os_bill_id":"ALB00004667","os_chamber":"lower","os_session":"2013rs","time_stamp_creation":"2013-03-30
|
30
|
+
15:26:04 UTC","time_stamp_update":"2013-08-31 02:31:24 UTC","time_stamp_news_google":"2013-09-25
|
31
|
+
17:21:19 UTC","time_stamp_news_yahoo":"2013-09-25 17:25:58 UTC","time_stamp_os_check":"2013-09-25
|
32
|
+
17:20:01 UTC","auto_time_os_update":"2013-04-20 01:10:01","title":"Relating
|
33
|
+
to contracts for municipal buildings and public utilities systems; to authorize
|
34
|
+
municipalities to enter into agreements with private companies that are registered
|
35
|
+
as service contract providers to provide ancillary service contracts to customers
|
36
|
+
of the utilities system...","chamber_name":"House","number":"HB 119","state":"Alabama","year_filed":"2013","os_date_passed_lower":"0000-00-00","os_date_passed_upper":"0000-00-00","os_date_signed":"0000-00-00","os_status":"introduced","policy_category":"Infrastructure","summary":"Under
|
37
|
+
existing law, the governing body of a municipality may contract with a private
|
38
|
+
company for the construction, extension, or repair of a municipal building
|
39
|
+
plant, waterworks system, or electric light and power plant.\r\nThis bill
|
40
|
+
would authorize the governing body of a municipality to enter into agreements
|
41
|
+
with private companies, registered as service contract providers pursuant
|
42
|
+
to statute, to provide ancillary service contracts to residential utility
|
43
|
+
customers with the endorsement of the municipality. This bill would also authorize
|
44
|
+
the governing body to apply any fees it receives pursuant to such an agreement
|
45
|
+
to its general revenue fund.","actions":[{"actor":"lower","date":"2013-04-18","action":"Motion
|
46
|
+
to Adopt adopted Roll Call 637","type":["amendment:passed"]},{"actor":"lower","date":"2013-04-18","action":"Wood
|
47
|
+
motion to Substitute a Companion Bill adopted Voice Vote","type":["other"]},{"actor":"lower","date":"2013-04-18","action":"Wood Amendment
|
48
|
+
Offered","type":["amendment:introduced"]},{"actor":"lower","date":"2013-04-18","action":"County
|
49
|
+
and Municipal Government Amendment Offered","type":["amendment:introduced"]},{"actor":"lower","date":"2013-04-18","action":"Wood
|
50
|
+
motion to Table adopted Roll Call 636","type":["amendment:passed"]},{"actor":"lower","date":"2013-04-18","action":"Third
|
51
|
+
Reading Indefinitely Postponed","type":["bill:failed"]},{"actor":"lower","date":"2013-02-05","action":"Read
|
52
|
+
for the first time and referred to the House of Representatives committee
|
53
|
+
on County and Municipal Government","type":["bill:reading:1","committee:referred"]},{"actor":"lower","date":"2013-02-21","action":"Read
|
54
|
+
for the second time and placed on the calendar 1 amendment","type":["bill:reading:2"]},{"actor":"lower","date":"2013-04-18","action":"Wood
|
55
|
+
motion to Indefinitely Postpone adopted Voice Vote","type":["other"]}],"votes":[{"other_count":"8","yes_count":"95","motion":"Wood
|
56
|
+
motion to Table adopted Roll Call 636","chamber":"lower","chamber_name":"House","session":"2013rs","passed":"1","date":"2013-04-18","no_count":"1","committee":"","tally":[{"leg_id":"ALL000122","name":"Robinson
|
57
|
+
(O)","type":"yes"},{"leg_id":"ALL000120","name":"Roberts","type":"yes"},{"leg_id":"ALL000119","name":"Rich","type":"yes"},{"leg_id":"ALL000118","name":"Poole","type":"yes"},{"leg_id":"ALL000117","name":"Payne","type":"yes"},{"leg_id":"ALL000116","name":"Patterson","type":"yes"},{"leg_id":"ALL000114","name":"Nordgren","type":"yes"},{"leg_id":"ALL000112","name":"Newton
|
58
|
+
(C)","type":"yes"},{"leg_id":"ALL000111","name":"Morrow","type":"yes"},{"leg_id":"ALL000110","name":"Moore
|
59
|
+
(M)","type":"yes"},{"leg_id":"ALL000109","name":"Moore (B)","type":"yes"},{"leg_id":"ALL000107","name":"Millican","type":"yes"},{"leg_id":"ALL000106","name":"Merrill","type":"yes"},{"leg_id":"ALL000105","name":"Melton","type":"yes"},{"leg_id":"ALL000104","name":"McMillan","type":"yes"},{"leg_id":"ALL000103","name":"McCutcheon","type":"yes"},{"leg_id":"ALL000102","name":"McClurkin","type":"yes"},{"leg_id":"ALL000101","name":"McClendon","type":"yes"},{"leg_id":"ALL000099","name":"McCampbell","type":"yes"},{"leg_id":"ALL000098","name":"McAdory","type":"yes"},{"leg_id":"ALL000097","name":"Mask","type":"yes"},{"leg_id":"ALL000096","name":"Love","type":"yes"},{"leg_id":"ALL000095","name":"Long","type":"yes"},{"leg_id":"ALL000094","name":"Lindsey","type":"yes"},{"leg_id":"ALL000093","name":"Lee","type":"yes"},{"leg_id":"ALL000092","name":"Laird","type":"yes"},{"leg_id":"ALL000091","name":"Knight","type":"yes"},{"leg_id":"ALL000089","name":"Jones","type":"yes"},{"leg_id":"ALL000088","name":"Johnson
|
60
|
+
(W)","type":"yes"},{"leg_id":"ALL000087","name":"Johnson (R)","type":"yes"},{"leg_id":"ALL000086","name":"Johnson
|
61
|
+
(K)","type":"yes"},{"leg_id":"ALL000084","name":"Ison","type":"yes"},{"leg_id":"ALL000083","name":"Hurst","type":"yes"},{"leg_id":"ALL000082","name":"Hubbard
|
62
|
+
(M)","type":"yes"},{"leg_id":"ALL000081","name":"Hubbard (J)","type":"yes"},{"leg_id":"ALL000080","name":"Howard","type":"yes"},{"leg_id":"ALL000078","name":"Hill","type":"yes"},{"leg_id":"ALL000077","name":"Henry","type":"yes"},{"leg_id":"ALL000076","name":"Harper","type":"yes"},{"leg_id":"ALL000075","name":"Hammon","type":"yes"},{"leg_id":"ALL000073","name":"Grimsley","type":"yes"},{"leg_id":"ALL000072","name":"Greeson","type":"yes"},{"leg_id":"ALL000071","name":"Greer","type":"yes"},{"leg_id":"ALL000070","name":"Givan","type":"yes"},{"leg_id":"ALL000069","name":"Gaston","type":"yes"},{"leg_id":"ALL000067","name":"Forte","type":"yes"},{"leg_id":"ALL000066","name":"Ford","type":"yes"},{"leg_id":"ALL000065","name":"Fincher","type":"yes"},{"leg_id":"ALL000064","name":"Faust","type":"yes"},{"leg_id":"ALL000063","name":"Farley","type":"yes"},{"leg_id":"ALL000062","name":"England","type":"yes"},{"leg_id":"ALL000061","name":"Drake","type":"yes"},{"leg_id":"ALL000060","name":"DeMarco","type":"yes"},{"leg_id":"ALL000059","name":"Davis","type":"yes"},{"leg_id":"ALL000058","name":"Colston","type":"yes"},{"leg_id":"ALL000057","name":"Collins","type":"yes"},{"leg_id":"ALL000056","name":"Coleman-Evans","type":"yes"},{"leg_id":"ALL000055","name":"Clouse","type":"yes"},{"leg_id":"ALL000054","name":"Chesteen","type":"yes"},{"leg_id":"ALL000053","name":"Carns","type":"yes"},{"leg_id":"ALL000052","name":"Buttram","type":"yes"},{"leg_id":"ALL000141","name":"Butler","type":"yes"},{"leg_id":"ALL000051","name":"Buskey","type":"yes"},{"leg_id":"ALL000050","name":"Burdine","type":"yes"},{"leg_id":"ALL000049","name":"Brown","type":"yes"},{"leg_id":"ALL000048","name":"Bridges","type":"yes"},{"leg_id":"ALL000047","name":"Bracy","type":"yes"},{"leg_id":"ALL000046","name":"Boyd","type":"yes"},{"leg_id":"ALL000045","name":"Boothe","type":"yes"},{"leg_id":"ALL000044","name":"Boman","type":"yes"},{"leg_id":"ALL000043","name":"Black","type":"yes"},{"leg_id":"ALL000042","name":"Beech","type":"yes"},{"leg_id":"ALL000041","name":"Beckman","type":"yes"},{"leg_id":"ALL000040","name":"Baughn","type":"yes"},{"leg_id":"ALL000039","name":"Barton","type":"yes"},{"leg_id":"ALL000037","name":"Ball","type":"yes"},{"leg_id":"ALL000036","name":"Baker","type":"yes"},{"leg_id":"ALL000142","name":"Standridge","type":"other"},{"leg_id":"ALL000113","name":"Newton
|
63
|
+
(D)","type":"other"},{"leg_id":"ALL000108","name":"Mitchell","type":"other"},{"leg_id":"ALL000100","name":"McClammy","type":"other"},{"leg_id":"ALL000085","name":"Jackson","type":"other"},{"leg_id":"ALL000079","name":"Holmes","type":"other"},{"leg_id":"ALL000074","name":"Hall","type":"other"},{"leg_id":"ALL000038","name":"Bandy","type":"other"},{"leg_id":"ALL000123","name":"Rogers","type":"yes"},{"leg_id":"ALL000124","name":"Sanderford","type":"yes"},{"leg_id":"ALL000125","name":"Scott","type":"yes"},{"leg_id":"ALL000126","name":"Sessions","type":"yes"},{"leg_id":"ALL000145","name":"Shedd","type":"yes"},{"leg_id":"ALL000127","name":"Shiver","type":"yes"},{"leg_id":"ALL000129","name":"Todd","type":"yes"},{"leg_id":"ALL000130","name":"Treadaway","type":"yes"},{"leg_id":"ALL000131","name":"Tuggle","type":"yes"},{"leg_id":"ALL000132","name":"Vance","type":"yes"},{"leg_id":"ALL000133","name":"Wallace","type":"yes"},{"leg_id":"ALL000134","name":"Warren","type":"yes"},{"leg_id":"ALL000135","name":"Weaver","type":"yes"},{"leg_id":"ALL000136","name":"Williams
|
64
|
+
(D)","type":"yes"},{"leg_id":"ALL000137","name":"Williams (J)","type":"yes"},{"leg_id":"ALL000138","name":"Williams
|
65
|
+
(P)","type":"yes"},{"leg_id":"ALL000139","name":"Wood","type":"yes"},{"leg_id":"ALL000140","name":"Wren","type":"yes"},{"leg_id":"ALL000121","name":"Robinson
|
66
|
+
(J)","type":"no"}]},{"other_count":"7","yes_count":"97","motion":"Motion to
|
67
|
+
Adopt adopted Roll Call 637","chamber":"lower","chamber_name":"House","session":"2013rs","passed":"1","date":"2013-04-18","no_count":"0","committee":"","tally":[{"leg_id":"ALL000140","name":"Wren","type":"yes"},{"leg_id":"ALL000139","name":"Wood","type":"yes"},{"leg_id":"ALL000138","name":"Williams
|
68
|
+
(P)","type":"yes"},{"leg_id":"ALL000137","name":"Williams (J)","type":"yes"},{"leg_id":"ALL000136","name":"Williams
|
69
|
+
(D)","type":"yes"},{"leg_id":"ALL000135","name":"Weaver","type":"yes"},{"leg_id":"ALL000134","name":"Warren","type":"yes"},{"leg_id":"ALL000133","name":"Wallace","type":"yes"},{"leg_id":"ALL000132","name":"Vance","type":"yes"},{"leg_id":"ALL000131","name":"Tuggle","type":"yes"},{"leg_id":"ALL000130","name":"Treadaway","type":"yes"},{"leg_id":"ALL000129","name":"Todd","type":"yes"},{"leg_id":"ALL000142","name":"Standridge","type":"yes"},{"leg_id":"ALL000127","name":"Shiver","type":"yes"},{"leg_id":"ALL000126","name":"Sessions","type":"yes"},{"leg_id":"ALL000145","name":"Shedd","type":"yes"},{"leg_id":"ALL000125","name":"Scott","type":"yes"},{"leg_id":"ALL000124","name":"Sanderford","type":"yes"},{"leg_id":"ALL000123","name":"Rogers","type":"yes"},{"leg_id":"ALL000122","name":"Robinson
|
70
|
+
(O)","type":"yes"},{"leg_id":"ALL000121","name":"Robinson (J)","type":"yes"},{"leg_id":"ALL000120","name":"Roberts","type":"yes"},{"leg_id":"ALL000119","name":"Rich","type":"yes"},{"leg_id":"ALL000118","name":"Poole","type":"yes"},{"leg_id":"ALL000117","name":"Payne","type":"yes"},{"leg_id":"ALL000116","name":"Patterson","type":"yes"},{"leg_id":"ALL000114","name":"Nordgren","type":"yes"},{"leg_id":"ALL000112","name":"Newton
|
71
|
+
(C)","type":"yes"},{"leg_id":"ALL000111","name":"Morrow","type":"yes"},{"leg_id":"ALL000110","name":"Moore
|
72
|
+
(M)","type":"yes"},{"leg_id":"ALL000109","name":"Moore (B)","type":"yes"},{"leg_id":"ALL000107","name":"Millican","type":"yes"},{"leg_id":"ALL000106","name":"Merrill","type":"yes"},{"leg_id":"ALL000105","name":"Melton","type":"yes"},{"leg_id":"ALL000104","name":"McMillan","type":"yes"},{"leg_id":"ALL000103","name":"McCutcheon","type":"yes"},{"leg_id":"ALL000102","name":"McClurkin","type":"yes"},{"leg_id":"ALL000101","name":"McClendon","type":"yes"},{"leg_id":"ALL000100","name":"McClammy","type":"yes"},{"leg_id":"ALL000099","name":"McCampbell","type":"yes"},{"leg_id":"ALL000098","name":"McAdory","type":"yes"},{"leg_id":"ALL000097","name":"Mask","type":"yes"},{"leg_id":"ALL000096","name":"Love","type":"yes"},{"leg_id":"ALL000095","name":"Long","type":"yes"},{"leg_id":"ALL000094","name":"Lindsey","type":"yes"},{"leg_id":"ALL000093","name":"Lee","type":"yes"},{"leg_id":"ALL000092","name":"Laird","type":"yes"},{"leg_id":"ALL000091","name":"Knight","type":"yes"},{"leg_id":"ALL000089","name":"Jones","type":"yes"},{"leg_id":"ALL000088","name":"Johnson
|
73
|
+
(W)","type":"yes"},{"leg_id":"ALL000087","name":"Johnson (R)","type":"yes"},{"leg_id":"ALL000086","name":"Johnson
|
74
|
+
(K)","type":"yes"},{"leg_id":"ALL000084","name":"Ison","type":"yes"},{"leg_id":"ALL000083","name":"Hurst","type":"yes"},{"leg_id":"ALL000082","name":"Hubbard
|
75
|
+
(M)","type":"yes"},{"leg_id":"ALL000081","name":"Hubbard (J)","type":"yes"},{"leg_id":"ALL000080","name":"Howard","type":"yes"},{"leg_id":"ALL000079","name":"Holmes","type":"yes"},{"leg_id":"ALL000078","name":"Hill","type":"yes"},{"leg_id":"ALL000077","name":"Henry","type":"yes"},{"leg_id":"ALL000076","name":"Harper","type":"yes"},{"leg_id":"ALL000075","name":"Hammon","type":"yes"},{"leg_id":"ALL000074","name":"Hall","type":"yes"},{"leg_id":"ALL000073","name":"Grimsley","type":"yes"},{"leg_id":"ALL000072","name":"Greeson","type":"yes"},{"leg_id":"ALL000071","name":"Greer","type":"yes"},{"leg_id":"ALL000069","name":"Gaston","type":"yes"},{"leg_id":"ALL000067","name":"Forte","type":"yes"},{"leg_id":"ALL000066","name":"Ford","type":"yes"},{"leg_id":"ALL000065","name":"Fincher","type":"yes"},{"leg_id":"ALL000064","name":"Faust","type":"yes"},{"leg_id":"ALL000063","name":"Farley","type":"yes"},{"leg_id":"ALL000062","name":"England","type":"yes"},{"leg_id":"ALL000061","name":"Drake","type":"yes"},{"leg_id":"ALL000060","name":"DeMarco","type":"yes"},{"leg_id":"ALL000059","name":"Davis","type":"yes"},{"leg_id":"ALL000058","name":"Colston","type":"yes"},{"leg_id":"ALL000057","name":"Collins","type":"yes"},{"leg_id":"ALL000056","name":"Coleman-Evans","type":"yes"},{"leg_id":"ALL000055","name":"Clouse","type":"yes"},{"leg_id":"ALL000054","name":"Chesteen","type":"yes"},{"leg_id":"ALL000053","name":"Carns","type":"yes"},{"leg_id":"ALL000052","name":"Buttram","type":"yes"},{"leg_id":"ALL000141","name":"Butler","type":"yes"},{"leg_id":"ALL000051","name":"Buskey","type":"yes"},{"leg_id":"ALL000050","name":"Burdine","type":"yes"},{"leg_id":"ALL000049","name":"Brown","type":"yes"},{"leg_id":"ALL000048","name":"Bridges","type":"yes"},{"leg_id":"ALL000047","name":"Bracy","type":"yes"},{"leg_id":"ALL000046","name":"Boyd","type":"yes"},{"leg_id":"ALL000045","name":"Boothe","type":"yes"},{"leg_id":"ALL000042","name":"Beech","type":"yes"},{"leg_id":"ALL000041","name":"Beckman","type":"yes"},{"leg_id":"ALL000040","name":"Baughn","type":"yes"},{"leg_id":"ALL000039","name":"Barton","type":"yes"},{"leg_id":"ALL000038","name":"Bandy","type":"yes"},{"leg_id":"ALL000036","name":"Baker","type":"yes"},{"leg_id":"ALL000113","name":"Newton
|
76
|
+
(D)","type":"other"},{"leg_id":"ALL000108","name":"Mitchell","type":"other"},{"leg_id":"ALL000085","name":"Jackson","type":"other"},{"leg_id":"ALL000070","name":"Givan","type":"other"},{"leg_id":"ALL000044","name":"Boman","type":"other"},{"leg_id":"ALL000043","name":"Black","type":"other"},{"leg_id":"ALL000037","name":"Ball","type":"other"}]}],"sponsors":[{"leg_id":"ALL000139","updated_at":"2013-09-25
|
77
|
+
00:04:51","full_name":"Randy Wood","first_name":"Randy","middle_name":"","last_name":"Wood","district":"36","office_address":"Room
|
78
|
+
120\n11 S. Union Street\nMontgomery, AL 36130","state_abbreviation":"al","votesmart_id":"27617","party":"Republican","email":"","photo_url":"http:\/\/www.legislature.state.al.us\/graphics\/housepics\/wood_r.jpeg","roles":[{"term":"2011-2014","end_date":null,"district":"36","chamber":"lower","state":"al","party":"Republican","type":"member","start_date":null},{"term":"2011-2014","committee_id":"ALC000014","end_date":null,"chamber":"lower","state":"al","committee":"Rules","position":"member","type":"committee
|
79
|
+
member","start_date":null},{"term":"2011-2014","committee_id":"ALC000006","end_date":null,"chamber":"lower","state":"al","committee":"Constitutions,
|
80
|
+
Campaigns and Elections","position":"vice chair","type":"committee member","start_date":null},{"term":"2011-2014","committee_id":"ALC000067","end_date":null,"chamber":"lower","state":"al","committee":"County
|
81
|
+
and Municipal Government","position":"vice chair","type":"committee member","start_date":null}],"old_roles":"","url":"http:\/\/www.legislature.state.al.us\/house\/representatives\/housebios\/hd036.html","chamber":"lower","chamber_name":"House","offices":[{"fax":null,"name":"Capitol
|
82
|
+
Office","phone":"334-242-7700","address":"Room 424\n11 S. Union Street\nMontgomery,
|
83
|
+
AL 36130","type":"capitol","email":null}],"country":"us","office_phone":"334-242-7700"}],"versions":[{"mimetype":"application\/pdf","url":"http:\/\/alisondb.legislature.state.al.us\/acas\/searchableinstruments\/2013rs\/PrintFiles\/HB119-int.pdf","doc_id":"ALD00013146","name":"introduced","title":""}]}'
|
84
|
+
http_version:
|
85
|
+
recorded_at: Wed, 25 Sep 2013 17:39:49 GMT
|
86
|
+
- request:
|
87
|
+
method: get
|
88
|
+
uri: http://www.aeltracker.org/api/bills/1
|
89
|
+
body:
|
90
|
+
encoding: US-ASCII
|
91
|
+
string: ''
|
92
|
+
headers: {}
|
93
|
+
response:
|
94
|
+
status:
|
95
|
+
code: 200
|
96
|
+
message: OK
|
97
|
+
headers:
|
98
|
+
Date:
|
99
|
+
- Wed, 25 Sep 2013 17:39:50 GMT
|
100
|
+
Server:
|
101
|
+
- Apache/2.2.14 (Ubuntu)
|
102
|
+
X-Powered-By:
|
103
|
+
- PHP/5.3.2-1ubuntu4.21
|
104
|
+
Vary:
|
105
|
+
- Accept-Encoding
|
106
|
+
Transfer-Encoding:
|
107
|
+
- chunked
|
108
|
+
Content-Type:
|
109
|
+
- text/html
|
110
|
+
body:
|
111
|
+
encoding: UTF-8
|
112
|
+
string: '{"bill_id":"1","os_bill_id":"ALB00004667","os_chamber":"lower","os_session":"2013rs","time_stamp_creation":"2013-03-30
|
113
|
+
15:26:04 UTC","time_stamp_update":"2013-08-31 02:31:24 UTC","time_stamp_news_google":"2013-09-25
|
114
|
+
17:21:19 UTC","time_stamp_news_yahoo":"2013-09-25 17:25:58 UTC","time_stamp_os_check":"2013-09-25
|
115
|
+
17:20:01 UTC","auto_time_os_update":"2013-04-20 01:10:01","title":"Relating
|
116
|
+
to contracts for municipal buildings and public utilities systems; to authorize
|
117
|
+
municipalities to enter into agreements with private companies that are registered
|
118
|
+
as service contract providers to provide ancillary service contracts to customers
|
119
|
+
of the utilities system...","chamber_name":"House","number":"HB 119","state":"Alabama","year_filed":"2013","os_date_passed_lower":"0000-00-00","os_date_passed_upper":"0000-00-00","os_date_signed":"0000-00-00","os_status":"introduced","policy_category":"Infrastructure","summary":"Under
|
120
|
+
existing law, the governing body of a municipality may contract with a private
|
121
|
+
company for the construction, extension, or repair of a municipal building
|
122
|
+
plant, waterworks system, or electric light and power plant.\r\nThis bill
|
123
|
+
would authorize the governing body of a municipality to enter into agreements
|
124
|
+
with private companies, registered as service contract providers pursuant
|
125
|
+
to statute, to provide ancillary service contracts to residential utility
|
126
|
+
customers with the endorsement of the municipality. This bill would also authorize
|
127
|
+
the governing body to apply any fees it receives pursuant to such an agreement
|
128
|
+
to its general revenue fund.","actions":[{"actor":"lower","date":"2013-04-18","action":"Motion
|
129
|
+
to Adopt adopted Roll Call 637","type":["amendment:passed"]},{"actor":"lower","date":"2013-04-18","action":"Wood
|
130
|
+
motion to Substitute a Companion Bill adopted Voice Vote","type":["other"]},{"actor":"lower","date":"2013-04-18","action":"Wood Amendment
|
131
|
+
Offered","type":["amendment:introduced"]},{"actor":"lower","date":"2013-04-18","action":"County
|
132
|
+
and Municipal Government Amendment Offered","type":["amendment:introduced"]},{"actor":"lower","date":"2013-04-18","action":"Wood
|
133
|
+
motion to Table adopted Roll Call 636","type":["amendment:passed"]},{"actor":"lower","date":"2013-04-18","action":"Third
|
134
|
+
Reading Indefinitely Postponed","type":["bill:failed"]},{"actor":"lower","date":"2013-02-05","action":"Read
|
135
|
+
for the first time and referred to the House of Representatives committee
|
136
|
+
on County and Municipal Government","type":["bill:reading:1","committee:referred"]},{"actor":"lower","date":"2013-02-21","action":"Read
|
137
|
+
for the second time and placed on the calendar 1 amendment","type":["bill:reading:2"]},{"actor":"lower","date":"2013-04-18","action":"Wood
|
138
|
+
motion to Indefinitely Postpone adopted Voice Vote","type":["other"]}],"votes":[{"other_count":"8","yes_count":"95","motion":"Wood
|
139
|
+
motion to Table adopted Roll Call 636","chamber":"lower","chamber_name":"House","session":"2013rs","passed":"1","date":"2013-04-18","no_count":"1","committee":"","tally":[{"leg_id":"ALL000122","name":"Robinson
|
140
|
+
(O)","type":"yes"},{"leg_id":"ALL000120","name":"Roberts","type":"yes"},{"leg_id":"ALL000119","name":"Rich","type":"yes"},{"leg_id":"ALL000118","name":"Poole","type":"yes"},{"leg_id":"ALL000117","name":"Payne","type":"yes"},{"leg_id":"ALL000116","name":"Patterson","type":"yes"},{"leg_id":"ALL000114","name":"Nordgren","type":"yes"},{"leg_id":"ALL000112","name":"Newton
|
141
|
+
(C)","type":"yes"},{"leg_id":"ALL000111","name":"Morrow","type":"yes"},{"leg_id":"ALL000110","name":"Moore
|
142
|
+
(M)","type":"yes"},{"leg_id":"ALL000109","name":"Moore (B)","type":"yes"},{"leg_id":"ALL000107","name":"Millican","type":"yes"},{"leg_id":"ALL000106","name":"Merrill","type":"yes"},{"leg_id":"ALL000105","name":"Melton","type":"yes"},{"leg_id":"ALL000104","name":"McMillan","type":"yes"},{"leg_id":"ALL000103","name":"McCutcheon","type":"yes"},{"leg_id":"ALL000102","name":"McClurkin","type":"yes"},{"leg_id":"ALL000101","name":"McClendon","type":"yes"},{"leg_id":"ALL000099","name":"McCampbell","type":"yes"},{"leg_id":"ALL000098","name":"McAdory","type":"yes"},{"leg_id":"ALL000097","name":"Mask","type":"yes"},{"leg_id":"ALL000096","name":"Love","type":"yes"},{"leg_id":"ALL000095","name":"Long","type":"yes"},{"leg_id":"ALL000094","name":"Lindsey","type":"yes"},{"leg_id":"ALL000093","name":"Lee","type":"yes"},{"leg_id":"ALL000092","name":"Laird","type":"yes"},{"leg_id":"ALL000091","name":"Knight","type":"yes"},{"leg_id":"ALL000089","name":"Jones","type":"yes"},{"leg_id":"ALL000088","name":"Johnson
|
143
|
+
(W)","type":"yes"},{"leg_id":"ALL000087","name":"Johnson (R)","type":"yes"},{"leg_id":"ALL000086","name":"Johnson
|
144
|
+
(K)","type":"yes"},{"leg_id":"ALL000084","name":"Ison","type":"yes"},{"leg_id":"ALL000083","name":"Hurst","type":"yes"},{"leg_id":"ALL000082","name":"Hubbard
|
145
|
+
(M)","type":"yes"},{"leg_id":"ALL000081","name":"Hubbard (J)","type":"yes"},{"leg_id":"ALL000080","name":"Howard","type":"yes"},{"leg_id":"ALL000078","name":"Hill","type":"yes"},{"leg_id":"ALL000077","name":"Henry","type":"yes"},{"leg_id":"ALL000076","name":"Harper","type":"yes"},{"leg_id":"ALL000075","name":"Hammon","type":"yes"},{"leg_id":"ALL000073","name":"Grimsley","type":"yes"},{"leg_id":"ALL000072","name":"Greeson","type":"yes"},{"leg_id":"ALL000071","name":"Greer","type":"yes"},{"leg_id":"ALL000070","name":"Givan","type":"yes"},{"leg_id":"ALL000069","name":"Gaston","type":"yes"},{"leg_id":"ALL000067","name":"Forte","type":"yes"},{"leg_id":"ALL000066","name":"Ford","type":"yes"},{"leg_id":"ALL000065","name":"Fincher","type":"yes"},{"leg_id":"ALL000064","name":"Faust","type":"yes"},{"leg_id":"ALL000063","name":"Farley","type":"yes"},{"leg_id":"ALL000062","name":"England","type":"yes"},{"leg_id":"ALL000061","name":"Drake","type":"yes"},{"leg_id":"ALL000060","name":"DeMarco","type":"yes"},{"leg_id":"ALL000059","name":"Davis","type":"yes"},{"leg_id":"ALL000058","name":"Colston","type":"yes"},{"leg_id":"ALL000057","name":"Collins","type":"yes"},{"leg_id":"ALL000056","name":"Coleman-Evans","type":"yes"},{"leg_id":"ALL000055","name":"Clouse","type":"yes"},{"leg_id":"ALL000054","name":"Chesteen","type":"yes"},{"leg_id":"ALL000053","name":"Carns","type":"yes"},{"leg_id":"ALL000052","name":"Buttram","type":"yes"},{"leg_id":"ALL000141","name":"Butler","type":"yes"},{"leg_id":"ALL000051","name":"Buskey","type":"yes"},{"leg_id":"ALL000050","name":"Burdine","type":"yes"},{"leg_id":"ALL000049","name":"Brown","type":"yes"},{"leg_id":"ALL000048","name":"Bridges","type":"yes"},{"leg_id":"ALL000047","name":"Bracy","type":"yes"},{"leg_id":"ALL000046","name":"Boyd","type":"yes"},{"leg_id":"ALL000045","name":"Boothe","type":"yes"},{"leg_id":"ALL000044","name":"Boman","type":"yes"},{"leg_id":"ALL000043","name":"Black","type":"yes"},{"leg_id":"ALL000042","name":"Beech","type":"yes"},{"leg_id":"ALL000041","name":"Beckman","type":"yes"},{"leg_id":"ALL000040","name":"Baughn","type":"yes"},{"leg_id":"ALL000039","name":"Barton","type":"yes"},{"leg_id":"ALL000037","name":"Ball","type":"yes"},{"leg_id":"ALL000036","name":"Baker","type":"yes"},{"leg_id":"ALL000142","name":"Standridge","type":"other"},{"leg_id":"ALL000113","name":"Newton
|
146
|
+
(D)","type":"other"},{"leg_id":"ALL000108","name":"Mitchell","type":"other"},{"leg_id":"ALL000100","name":"McClammy","type":"other"},{"leg_id":"ALL000085","name":"Jackson","type":"other"},{"leg_id":"ALL000079","name":"Holmes","type":"other"},{"leg_id":"ALL000074","name":"Hall","type":"other"},{"leg_id":"ALL000038","name":"Bandy","type":"other"},{"leg_id":"ALL000123","name":"Rogers","type":"yes"},{"leg_id":"ALL000124","name":"Sanderford","type":"yes"},{"leg_id":"ALL000125","name":"Scott","type":"yes"},{"leg_id":"ALL000126","name":"Sessions","type":"yes"},{"leg_id":"ALL000145","name":"Shedd","type":"yes"},{"leg_id":"ALL000127","name":"Shiver","type":"yes"},{"leg_id":"ALL000129","name":"Todd","type":"yes"},{"leg_id":"ALL000130","name":"Treadaway","type":"yes"},{"leg_id":"ALL000131","name":"Tuggle","type":"yes"},{"leg_id":"ALL000132","name":"Vance","type":"yes"},{"leg_id":"ALL000133","name":"Wallace","type":"yes"},{"leg_id":"ALL000134","name":"Warren","type":"yes"},{"leg_id":"ALL000135","name":"Weaver","type":"yes"},{"leg_id":"ALL000136","name":"Williams
|
147
|
+
(D)","type":"yes"},{"leg_id":"ALL000137","name":"Williams (J)","type":"yes"},{"leg_id":"ALL000138","name":"Williams
|
148
|
+
(P)","type":"yes"},{"leg_id":"ALL000139","name":"Wood","type":"yes"},{"leg_id":"ALL000140","name":"Wren","type":"yes"},{"leg_id":"ALL000121","name":"Robinson
|
149
|
+
(J)","type":"no"}]},{"other_count":"7","yes_count":"97","motion":"Motion to
|
150
|
+
Adopt adopted Roll Call 637","chamber":"lower","chamber_name":"House","session":"2013rs","passed":"1","date":"2013-04-18","no_count":"0","committee":"","tally":[{"leg_id":"ALL000140","name":"Wren","type":"yes"},{"leg_id":"ALL000139","name":"Wood","type":"yes"},{"leg_id":"ALL000138","name":"Williams
|
151
|
+
(P)","type":"yes"},{"leg_id":"ALL000137","name":"Williams (J)","type":"yes"},{"leg_id":"ALL000136","name":"Williams
|
152
|
+
(D)","type":"yes"},{"leg_id":"ALL000135","name":"Weaver","type":"yes"},{"leg_id":"ALL000134","name":"Warren","type":"yes"},{"leg_id":"ALL000133","name":"Wallace","type":"yes"},{"leg_id":"ALL000132","name":"Vance","type":"yes"},{"leg_id":"ALL000131","name":"Tuggle","type":"yes"},{"leg_id":"ALL000130","name":"Treadaway","type":"yes"},{"leg_id":"ALL000129","name":"Todd","type":"yes"},{"leg_id":"ALL000142","name":"Standridge","type":"yes"},{"leg_id":"ALL000127","name":"Shiver","type":"yes"},{"leg_id":"ALL000126","name":"Sessions","type":"yes"},{"leg_id":"ALL000145","name":"Shedd","type":"yes"},{"leg_id":"ALL000125","name":"Scott","type":"yes"},{"leg_id":"ALL000124","name":"Sanderford","type":"yes"},{"leg_id":"ALL000123","name":"Rogers","type":"yes"},{"leg_id":"ALL000122","name":"Robinson
|
153
|
+
(O)","type":"yes"},{"leg_id":"ALL000121","name":"Robinson (J)","type":"yes"},{"leg_id":"ALL000120","name":"Roberts","type":"yes"},{"leg_id":"ALL000119","name":"Rich","type":"yes"},{"leg_id":"ALL000118","name":"Poole","type":"yes"},{"leg_id":"ALL000117","name":"Payne","type":"yes"},{"leg_id":"ALL000116","name":"Patterson","type":"yes"},{"leg_id":"ALL000114","name":"Nordgren","type":"yes"},{"leg_id":"ALL000112","name":"Newton
|
154
|
+
(C)","type":"yes"},{"leg_id":"ALL000111","name":"Morrow","type":"yes"},{"leg_id":"ALL000110","name":"Moore
|
155
|
+
(M)","type":"yes"},{"leg_id":"ALL000109","name":"Moore (B)","type":"yes"},{"leg_id":"ALL000107","name":"Millican","type":"yes"},{"leg_id":"ALL000106","name":"Merrill","type":"yes"},{"leg_id":"ALL000105","name":"Melton","type":"yes"},{"leg_id":"ALL000104","name":"McMillan","type":"yes"},{"leg_id":"ALL000103","name":"McCutcheon","type":"yes"},{"leg_id":"ALL000102","name":"McClurkin","type":"yes"},{"leg_id":"ALL000101","name":"McClendon","type":"yes"},{"leg_id":"ALL000100","name":"McClammy","type":"yes"},{"leg_id":"ALL000099","name":"McCampbell","type":"yes"},{"leg_id":"ALL000098","name":"McAdory","type":"yes"},{"leg_id":"ALL000097","name":"Mask","type":"yes"},{"leg_id":"ALL000096","name":"Love","type":"yes"},{"leg_id":"ALL000095","name":"Long","type":"yes"},{"leg_id":"ALL000094","name":"Lindsey","type":"yes"},{"leg_id":"ALL000093","name":"Lee","type":"yes"},{"leg_id":"ALL000092","name":"Laird","type":"yes"},{"leg_id":"ALL000091","name":"Knight","type":"yes"},{"leg_id":"ALL000089","name":"Jones","type":"yes"},{"leg_id":"ALL000088","name":"Johnson
|
156
|
+
(W)","type":"yes"},{"leg_id":"ALL000087","name":"Johnson (R)","type":"yes"},{"leg_id":"ALL000086","name":"Johnson
|
157
|
+
(K)","type":"yes"},{"leg_id":"ALL000084","name":"Ison","type":"yes"},{"leg_id":"ALL000083","name":"Hurst","type":"yes"},{"leg_id":"ALL000082","name":"Hubbard
|
158
|
+
(M)","type":"yes"},{"leg_id":"ALL000081","name":"Hubbard (J)","type":"yes"},{"leg_id":"ALL000080","name":"Howard","type":"yes"},{"leg_id":"ALL000079","name":"Holmes","type":"yes"},{"leg_id":"ALL000078","name":"Hill","type":"yes"},{"leg_id":"ALL000077","name":"Henry","type":"yes"},{"leg_id":"ALL000076","name":"Harper","type":"yes"},{"leg_id":"ALL000075","name":"Hammon","type":"yes"},{"leg_id":"ALL000074","name":"Hall","type":"yes"},{"leg_id":"ALL000073","name":"Grimsley","type":"yes"},{"leg_id":"ALL000072","name":"Greeson","type":"yes"},{"leg_id":"ALL000071","name":"Greer","type":"yes"},{"leg_id":"ALL000069","name":"Gaston","type":"yes"},{"leg_id":"ALL000067","name":"Forte","type":"yes"},{"leg_id":"ALL000066","name":"Ford","type":"yes"},{"leg_id":"ALL000065","name":"Fincher","type":"yes"},{"leg_id":"ALL000064","name":"Faust","type":"yes"},{"leg_id":"ALL000063","name":"Farley","type":"yes"},{"leg_id":"ALL000062","name":"England","type":"yes"},{"leg_id":"ALL000061","name":"Drake","type":"yes"},{"leg_id":"ALL000060","name":"DeMarco","type":"yes"},{"leg_id":"ALL000059","name":"Davis","type":"yes"},{"leg_id":"ALL000058","name":"Colston","type":"yes"},{"leg_id":"ALL000057","name":"Collins","type":"yes"},{"leg_id":"ALL000056","name":"Coleman-Evans","type":"yes"},{"leg_id":"ALL000055","name":"Clouse","type":"yes"},{"leg_id":"ALL000054","name":"Chesteen","type":"yes"},{"leg_id":"ALL000053","name":"Carns","type":"yes"},{"leg_id":"ALL000052","name":"Buttram","type":"yes"},{"leg_id":"ALL000141","name":"Butler","type":"yes"},{"leg_id":"ALL000051","name":"Buskey","type":"yes"},{"leg_id":"ALL000050","name":"Burdine","type":"yes"},{"leg_id":"ALL000049","name":"Brown","type":"yes"},{"leg_id":"ALL000048","name":"Bridges","type":"yes"},{"leg_id":"ALL000047","name":"Bracy","type":"yes"},{"leg_id":"ALL000046","name":"Boyd","type":"yes"},{"leg_id":"ALL000045","name":"Boothe","type":"yes"},{"leg_id":"ALL000042","name":"Beech","type":"yes"},{"leg_id":"ALL000041","name":"Beckman","type":"yes"},{"leg_id":"ALL000040","name":"Baughn","type":"yes"},{"leg_id":"ALL000039","name":"Barton","type":"yes"},{"leg_id":"ALL000038","name":"Bandy","type":"yes"},{"leg_id":"ALL000036","name":"Baker","type":"yes"},{"leg_id":"ALL000113","name":"Newton
|
159
|
+
(D)","type":"other"},{"leg_id":"ALL000108","name":"Mitchell","type":"other"},{"leg_id":"ALL000085","name":"Jackson","type":"other"},{"leg_id":"ALL000070","name":"Givan","type":"other"},{"leg_id":"ALL000044","name":"Boman","type":"other"},{"leg_id":"ALL000043","name":"Black","type":"other"},{"leg_id":"ALL000037","name":"Ball","type":"other"}]}],"sponsors":[{"leg_id":"ALL000139","updated_at":"2013-09-25
|
160
|
+
00:04:51","full_name":"Randy Wood","first_name":"Randy","middle_name":"","last_name":"Wood","district":"36","office_address":"Room
|
161
|
+
120\n11 S. Union Street\nMontgomery, AL 36130","state_abbreviation":"al","votesmart_id":"27617","party":"Republican","email":"","photo_url":"http:\/\/www.legislature.state.al.us\/graphics\/housepics\/wood_r.jpeg","roles":[{"term":"2011-2014","end_date":null,"district":"36","chamber":"lower","state":"al","party":"Republican","type":"member","start_date":null},{"term":"2011-2014","committee_id":"ALC000014","end_date":null,"chamber":"lower","state":"al","committee":"Rules","position":"member","type":"committee
|
162
|
+
member","start_date":null},{"term":"2011-2014","committee_id":"ALC000006","end_date":null,"chamber":"lower","state":"al","committee":"Constitutions,
|
163
|
+
Campaigns and Elections","position":"vice chair","type":"committee member","start_date":null},{"term":"2011-2014","committee_id":"ALC000067","end_date":null,"chamber":"lower","state":"al","committee":"County
|
164
|
+
and Municipal Government","position":"vice chair","type":"committee member","start_date":null}],"old_roles":"","url":"http:\/\/www.legislature.state.al.us\/house\/representatives\/housebios\/hd036.html","chamber":"lower","chamber_name":"House","offices":[{"fax":null,"name":"Capitol
|
165
|
+
Office","phone":"334-242-7700","address":"Room 424\n11 S. Union Street\nMontgomery,
|
166
|
+
AL 36130","type":"capitol","email":null}],"country":"us","office_phone":"334-242-7700"}],"versions":[{"mimetype":"application\/pdf","url":"http:\/\/alisondb.legislature.state.al.us\/acas\/searchableinstruments\/2013rs\/PrintFiles\/HB119-int.pdf","doc_id":"ALD00013146","name":"introduced","title":""}]}'
|
167
|
+
http_version:
|
168
|
+
recorded_at: Wed, 25 Sep 2013 17:39:50 GMT
|
169
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require './lib/ael_tracker/bill'
|
3
|
+
|
4
|
+
describe AelTracker::Bill do
|
5
|
+
it "must include httparty methods" do
|
6
|
+
expect( AelTracker::Bill ).to include HTTParty
|
7
|
+
end
|
8
|
+
|
9
|
+
it "must have the base url set to the AelTracker API endpoint" do
|
10
|
+
expect( AelTracker::Bill.base_uri ).to eq 'http://www.aeltracker.org/api'
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "GET bill" do
|
14
|
+
|
15
|
+
let(:bill) { AelTracker::Bill.new(1) }
|
16
|
+
|
17
|
+
before(:all) do
|
18
|
+
VCR.insert_cassette 'bill', :record => :new_episodes
|
19
|
+
end
|
20
|
+
|
21
|
+
after(:all) do
|
22
|
+
VCR.eject_cassette
|
23
|
+
end
|
24
|
+
|
25
|
+
it "must have an profile method" do
|
26
|
+
expect( bill ).to respond_to :profile
|
27
|
+
end
|
28
|
+
|
29
|
+
it "must parse the api response from JSON to HASH" do
|
30
|
+
expect( bill.profile ).to be_an_instance_of( Hash )
|
31
|
+
end
|
32
|
+
|
33
|
+
it "records the fixture" do
|
34
|
+
expect( bill.profile["bill_id"] ).to eq "1"
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "dynamic attributes" do
|
40
|
+
|
41
|
+
let(:bill) { AelTracker::Bill.new(1) }
|
42
|
+
|
43
|
+
before(:all) do
|
44
|
+
VCR.insert_cassette 'bill', :record => :new_episodes
|
45
|
+
end
|
46
|
+
|
47
|
+
after(:all) do
|
48
|
+
VCR.eject_cassette
|
49
|
+
end
|
50
|
+
|
51
|
+
it "must return the attribute value if present in profile" do
|
52
|
+
bill.profile
|
53
|
+
expect( bill.id ).to eq 1
|
54
|
+
end
|
55
|
+
|
56
|
+
it "must raise method missing if attribute is not present" do
|
57
|
+
bill.profile
|
58
|
+
expect( lambda { bill.foo_attribute } ).to raise_error( NoMethodError )
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ael_tracker
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bradley Sheehan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-09-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: vcr
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: webmock
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: httparty
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bundler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.3'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.3'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: 'A little gem that integrates with the AelTracker API. From the official
|
112
|
+
site: http://www.aeltracker.org/api. The AelTracker (i.e. Advanced Energy Legislation
|
113
|
+
Tracker) API provides methods for obtaining basic information about advanced energy
|
114
|
+
legislation.'
|
115
|
+
email:
|
116
|
+
- bradpsheehan@gmail.com
|
117
|
+
executables: []
|
118
|
+
extensions: []
|
119
|
+
extra_rdoc_files: []
|
120
|
+
files:
|
121
|
+
- .gitignore
|
122
|
+
- Gemfile
|
123
|
+
- LICENSE.txt
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- ael_tracker.gemspec
|
127
|
+
- lib/ael_tracker.rb
|
128
|
+
- lib/ael_tracker/bill.rb
|
129
|
+
- lib/ael_tracker/version.rb
|
130
|
+
- spec/fixtures/cassettes/bill.yml
|
131
|
+
- spec/lib/bill_spec.rb
|
132
|
+
- spec/spec_helper.rb
|
133
|
+
homepage: ''
|
134
|
+
licenses:
|
135
|
+
- MIT
|
136
|
+
metadata: {}
|
137
|
+
post_install_message:
|
138
|
+
rdoc_options: []
|
139
|
+
require_paths:
|
140
|
+
- lib
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements: []
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 2.0.3
|
154
|
+
signing_key:
|
155
|
+
specification_version: 4
|
156
|
+
summary: Ruby wrapper for Advanced Energy Legislation Tracker API.
|
157
|
+
test_files:
|
158
|
+
- spec/fixtures/cassettes/bill.yml
|
159
|
+
- spec/lib/bill_spec.rb
|
160
|
+
- spec/spec_helper.rb
|