civic_info 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,5 +2,6 @@ source 'http://rubygems.org'
2
2
  gemspec
3
3
 
4
4
  gem 'active_support'
5
- gem 'httparty'
5
+ gem 'faraday'
6
+ gem 'json'
6
7
  gem 'rspec'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- civic_info (0.0.0)
4
+ civic_info (1.0.0)
5
5
  active_support
6
6
  httparty
7
7
 
@@ -12,11 +12,15 @@ GEM
12
12
  activesupport (= 3.0.0)
13
13
  activesupport (3.0.0)
14
14
  diff-lcs (1.1.3)
15
+ faraday (0.8.4)
16
+ multipart-post (~> 1.1)
15
17
  httparty (0.9.0)
16
18
  multi_json (~> 1.0)
17
19
  multi_xml
20
+ json (1.6.1)
18
21
  multi_json (1.3.7)
19
22
  multi_xml (0.5.1)
23
+ multipart-post (1.1.5)
20
24
  rspec (2.11.0)
21
25
  rspec-core (~> 2.11.0)
22
26
  rspec-expectations (~> 2.11.0)
@@ -32,5 +36,6 @@ PLATFORMS
32
36
  DEPENDENCIES
33
37
  active_support
34
38
  civic_info!
35
- httparty
39
+ faraday
40
+ json
36
41
  rspec
data/README.mkd ADDED
@@ -0,0 +1,17 @@
1
+ # Civic Info
2
+
3
+ Note: You MUST have a google API key, and it must be set in your environment as GOOGLE_API_KEY
4
+
5
+ ```
6
+ gem install civic_info
7
+ ```
8
+
9
+ ```ruby
10
+ > ci = CivicInfo.new
11
+ > ci.elections
12
+ => {"kind"=>"civicinfo#electionsQueryResponse", "elections"=>[{"id"=>"2000", "name"=>"VIP Test Election", "
13
+ electionDay"=>"2013-06-06"}, {"id"=>"4000", "name"=>"U.S. 2012 General Election",
14
+ "electionDay"=>"2012-11-06"}]}
15
+ > ci.voter_info(election_id, address_string)
16
+ =>
17
+ ```
data/civic_info.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'civic_info'
3
- s.version = '1.0.0'
3
+ s.version = '1.0.1'
4
4
  s.date = '2012-11-03'
5
5
  s.summary = 'Wrapper to Google\'s civic info API'
6
6
  s.description = ""
@@ -10,6 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
11
11
  s.homepage = 'http://github.com/joannecheng/civic_info'
12
12
 
13
- s.add_dependency "httparty"
13
+ s.add_dependency "json"
14
+ s.add_dependency "faraday"
14
15
  s.add_dependency 'active_support'
15
16
  end
data/lib/civic_info.rb CHANGED
@@ -1,4 +1,5 @@
1
- require 'httparty'
1
+ require 'faraday'
2
+ require 'json'
2
3
  require 'active_support/core_ext/hash/indifferent_access'
3
4
 
4
5
  class GoogleAPI
@@ -6,19 +7,22 @@ class GoogleAPI
6
7
  def initialize(api_key, service_name)
7
8
  @api_key = ENV['GOOGLE_API_KEY']
8
9
  @service_url = "https://www.googleapis.com#{service_name}"
10
+ @conn = Faraday.new(:url => @service_url)
9
11
  end
10
12
 
11
13
  def get(call_string)
12
- HTTParty.get("#{@service_url}#{call_string}?key=#{@api_key}").with_indifferent_access
14
+ JSON.parse(@conn.get("#{call_string}?key=#{@api_key}").body).with_indifferent_access
13
15
  end
14
16
 
15
- def post(call_string, body = {})
16
- HTTParty.post("#{@service_url}#{call_string}?key=#{@api_key}",
17
- :body => body
18
- ).with_indifferent_access
17
+ def post(call_string, body)
18
+ response = @conn.post do |conn|
19
+ conn.url "#{call_string}?key=#{@api_key}"
20
+ conn.headers['Content-Type'] = 'application/json'
21
+ conn.body = body.to_json
22
+ end
23
+ JSON.parse(response.body).with_indifferent_access
19
24
  end
20
25
 
21
-
22
26
  end
23
27
 
24
28
  class CivicInfo
@@ -27,7 +27,7 @@ describe CivicInfo do
27
27
  describe '#voter_info' do
28
28
  it 'gets voter info' do
29
29
  ci = CivicInfo.new()
30
- ci.voter_info(4000, 'Market Street Station Denver, CO')
30
+ ci.voter_info(4000, '1263 Pacific Ave. Kansas City KS')[:kind].should == "civicinfo#voterInfoResponse"
31
31
  end
32
32
  end
33
33
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: civic_info
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,23 @@ cert_chain: []
12
12
  date: 2012-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: httparty
15
+ name: json
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: faraday
16
32
  requirement: !ruby/object:Gem::Requirement
17
33
  none: false
18
34
  requirements:
@@ -52,6 +68,7 @@ files:
52
68
  - .gitignore
53
69
  - Gemfile
54
70
  - Gemfile.lock
71
+ - README.mkd
55
72
  - civic_info.gemspec
56
73
  - lib/civic_info.rb
57
74
  - spec/spec_helper.rb