congress 0.2.5 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ae6df46b32ab8e6a97ee81494ac457eddc249ec
4
- data.tar.gz: 43bf6e104c9586f9e4f58ea7fda52c0fa7858dda
3
+ metadata.gz: c322571660c22a62b5ac3a1dcf9e94c6b919341e
4
+ data.tar.gz: 91f8266395e2b5eff9730419759f412814ad8050
5
5
  SHA512:
6
- metadata.gz: 621a47cc98ae075c49ece8950e4e32f777d36f75a6ebe44b04acd0141de7e4fb6c531c65399766c19e65b784bafcf32d492f158c3fb809e4c3919267a23586dc
7
- data.tar.gz: 6165447ac0875594a087e82b79750a7a2e3a74119190ac11542d914e79cc47063d452bcd9561e87da823a390eb47344349e398a452f6475be2b0bc3bebfd26dc
6
+ metadata.gz: b7e3753cae8bd88f29fac104b9461e51ebe38f790de0ec4a33d2d73d66242b946276b2e3074d2aa2dd23672da4835efa3332face317895c74b6d4fc5bcae05f9
7
+ data.tar.gz: 32cc75b113a7e0c3e07eba143d1d18422d394b9bb8a04d65e6c32cfd218975236aaea9536c00a6127b402a8aa9ee2f5fedc56b51db584860d72f9af800f1abfe
@@ -1,4 +1,5 @@
1
1
  bundler_args: --without development
2
+ cache: bundler
2
3
  env:
3
4
  global:
4
5
  - JRUBY_OPTS="$JRUBY_OPTS --debug"
@@ -7,7 +8,9 @@ rvm:
7
8
  - 1.9.3
8
9
  - 2.0.0
9
10
  - 2.1
11
+ - 2.2
10
12
  - jruby-19mode
13
+ - jruby-9000
11
14
  - jruby-head
12
15
  - rbx-2
13
16
  - ruby-head
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011-2014, Code for America
1
+ Copyright (c) 2011-2015, Code for America
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
data/README.md CHANGED
@@ -1,16 +1,16 @@
1
1
  # Ruby wrapper for the Sunlight Congress API
2
2
 
3
- [![Gem Version](http://img.shields.io/gem/v/congress.svg)][gem]
4
- [![Build Status](http://img.shields.io/travis/codeforamerica/congress.svg)][travis]
5
- [![Dependency Status](http://img.shields.io/gemnasium/codeforamerica/congress.svg)][gemnasium]
6
- [![Code Climate](http://img.shields.io/codeclimate/github/codeforamerica/congress.svg)][codeclimate]
7
- [![Coverage Status](http://img.shields.io/coveralls/codeforamerica/congress.svg)][coveralls]
3
+ [![Gem Version](https://badge.fury.io/rb/congress.svg)][gem]
4
+ [![Build Status](https://travis-ci.org/codeforamerica/congress.svg?branch=master)][travis]
5
+ [![Dependency Status](https://gemnasium.com/codeforamerica/congress.svg)][gemnasium]
6
+ [![Code Climate](https://codeclimate.com/github/codeforamerica/congress/badges/gpa.svg)][codeclimate]
7
+ [![Coverage Status](https://coveralls.io/repos/codeforamerica/congress/badge.svg?branch=master&service=github)][coveralls]
8
8
 
9
9
  [gem]: https://rubygems.org/gems/congress
10
- [travis]: http://travis-ci.org/codeforamerica/congress
10
+ [travis]: https://travis-ci.org/codeforamerica/congress
11
11
  [gemnasium]: https://gemnasium.com/codeforamerica/congress
12
12
  [codeclimate]: https://codeclimate.com/github/codeforamerica/congress
13
- [coveralls]: https://coveralls.io/r/codeforamerica/congress
13
+ [coveralls]: https://coveralls.io/github/codeforamerica/congress?branch=master
14
14
 
15
15
  The Sunlight Congress API is a live JSON API for the people and work of
16
16
  Congress, provided by the Sunlight Foundation.
@@ -23,70 +23,68 @@ Congress, provided by the Sunlight Foundation.
23
23
  [documentation]: http://rdoc.info/gems/congress
24
24
 
25
25
  ## Authentication
26
-
27
26
  All requests to the Congress API require a Sunlight API key. An API key is
28
27
  [free to register][register] and has no usage limits.
29
28
 
30
29
  [register]: http://services.sunlightlabs.com/accounts/register/
31
30
 
32
31
  ## Usage Examples
33
-
34
32
  ###### Setup
35
33
  ```ruby
36
34
  require 'congress'
37
- Congress.key = YOUR_SUNLIGHT_API_KEY
35
+ client = Congress::Client.new(YOUR_SUNLIGHT_API_KEY)
38
36
  ```
39
37
 
40
38
  ###### Fetch current legislators' names, IDs, biography, and social media
41
39
  ```ruby
42
- Congress.legislators
40
+ client.legislators
43
41
  ```
44
42
 
45
43
  ###### Fetch representatives and senators for a latitude/longitude or zip code
46
44
  ```ruby
47
- Congress.legislators_locate(37.775, -122.418)
48
- Congress.legislators_locate('94107')
45
+ client.legislators_locate(37.775, -122.418)
46
+ client.legislators_locate('94107')
49
47
  ```
50
48
 
51
49
  ###### Fetch congressional districts for a latitude/longitude or zip code
52
50
  ```ruby
53
- Congress.districts_locate(37.775, -122.418)
54
- Congress.districts_locate('94107')
51
+ client.districts_locate(37.775, -122.418)
52
+ client.districts_locate('94107')
55
53
  ```
56
54
 
57
55
  ###### Fetch current committees, subcommittees, and their membership
58
56
  ```ruby
59
- Congress.committees
57
+ client.committees
60
58
  ```
61
59
 
62
60
  ###### Fetch legislation in the House and Senate
63
61
  ```ruby
64
- Congress.bills
62
+ client.bills
65
63
  ```
66
64
 
67
65
  ###### Fetch legislation related to health care
68
66
  ```ruby
69
- Congress.bills_search(:query => "health care")
67
+ client.bills_search(:query => "health care")
70
68
  ```
71
69
 
72
70
  ###### Fetch roll call votes in Congress
73
71
  ```ruby
74
- Congress.votes
72
+ client.votes
75
73
  ```
76
74
 
77
75
  ###### Fetch to-the-minute updates from the floor of the House and Senate
78
76
  ```ruby
79
- Congress.floor_updates
77
+ client.floor_updates
80
78
  ```
81
79
 
82
80
  ###### Fetch committee hearings in Congress
83
81
  ```ruby
84
- Congress.hearings
82
+ client.hearings
85
83
  ```
86
84
 
87
85
  ###### Fetch bills scheduled for debate in the future, as announced by party leadership
88
86
  ```ruby
89
- Congress.upcoming_bills
87
+ client.upcoming_bills
90
88
  ```
91
89
 
92
90
  ## Supported Ruby Versions
@@ -95,12 +93,10 @@ implementations:
95
93
 
96
94
  * Ruby 1.9.3
97
95
  * Ruby 2.0.0
98
- * Ruby 2.1.0
99
- * [JRuby][]
100
- * [Rubinius][]
101
-
102
- [jruby]: http://www.jruby.org/
103
- [rubinius]: http://rubini.us/
96
+ * Ruby 2.1
97
+ * Ruby 2.2
98
+ * JRuby 1.7
99
+ * JRuby 9.0.0.0
104
100
 
105
101
  If something doesn't work on one of these interpreters, it should be considered
106
102
  a bug.
@@ -117,6 +113,6 @@ timely fashion. If critical issues for a particular implementation exist at the
117
113
  time of a major release, support for that Ruby version may be dropped.
118
114
 
119
115
  ## Copyright
120
- Copyright (c) 2011-2014, Code for America. See [LICENSE][] for details.
116
+ Copyright (c) 2011-2015, Code for America. See [LICENSE][] for details.
121
117
 
122
118
  [license]: https://github.com/codeforamerica/congress/blob/master/LICENSE.md
@@ -3,9 +3,8 @@ require File.expand_path('../lib/congress/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.add_dependency 'faraday', '~> 0.9.0'
6
- spec.add_dependency 'faraday_middleware', '~> 0.9.1'
7
- spec.add_dependency 'hashie', '~> 2.0'
8
- spec.add_dependency 'rash', '~> 0.4'
6
+ spec.add_dependency 'faraday_middleware', '~> 0.10.0'
7
+ spec.add_dependency 'hashie', '~> 3.0'
9
8
  spec.add_dependency 'geocoder', '~> 1.2'
10
9
  spec.add_development_dependency 'bundler', '~> 1.0'
11
10
  spec.author = 'Erik Michaels-Ober'
@@ -18,5 +17,5 @@ Gem::Specification.new do |spec|
18
17
  spec.require_paths = ['lib']
19
18
  spec.required_ruby_version = '>= 1.9.3'
20
19
  spec.summary = 'Ruby wrapper for the Sunlight Congress API'
21
- spec.version = Congress::VERSION
20
+ spec.version = Congress::Version
22
21
  end
@@ -1,27 +1 @@
1
1
  require 'congress/client'
2
-
3
- module Congress
4
- extend self # rubocop:disable ModuleFunction
5
- attr_accessor :key
6
-
7
- # Alias for Congress::Client.new
8
- #
9
- # @return [Congress::Client]
10
- def new(key = key)
11
- yield self if block_given?
12
- return @client if instance_variable_defined?(:@client) && @client.key == key
13
- @client = Congress::Client.new(key)
14
- end
15
-
16
- # Delegate to Congress::Client
17
- def method_missing(method, *args, &block)
18
- return super unless new.respond_to?(method)
19
- new.send(method, *args, &block)
20
- end
21
-
22
- # @return [Boolean]
23
- def respond_to?(method, include_private = false) new.respond_to?(method, include_private) end if RUBY_VERSION < '1.9' # rubocop:disable SingleLineMethods
24
-
25
- # @return [Boolean]
26
- def respond_to_missing?(method_name, include_private = false) new.respond_to?(method_name, include_private) end if RUBY_VERSION >= '1.9' # rubocop:disable SingleLineMethods
27
- end
@@ -16,8 +16,7 @@ module Congress
16
16
  #
17
17
  # @return [Hashie::Rash]
18
18
  # @example
19
- # Congress.key = YOUR_SUNLIGHT_API_KEY
20
- # Congress.legislators
19
+ # client.legislators
21
20
  def legislators(options = {})
22
21
  get('/legislators', options)
23
22
  end
@@ -26,10 +25,9 @@ module Congress
26
25
  #
27
26
  # @return [Hashie::Rash]
28
27
  # @example
29
- # Congress.key = YOUR_SUNLIGHT_API_KEY
30
- # Congress.legislators_locate('94107')
31
- # Congress.legislators_locate(37.775, -122.418)
32
- # Congress.legislators_locate('2169 Mission Street, San Francisco, CA 94110')
28
+ # client.legislators_locate('94107')
29
+ # client.legislators_locate(37.775, -122.418)
30
+ # client.legislators_locate('2169 Mission Street, San Francisco, CA 94110')
33
31
  def legislators_locate(*args)
34
32
  get('/legislators/locate', extract_location(args))
35
33
  end
@@ -38,10 +36,9 @@ module Congress
38
36
  #
39
37
  # @return [Hashie::Rash]
40
38
  # @example
41
- # Congress.key = YOUR_SUNLIGHT_API_KEY
42
- # Congress.districts_locate('94107')
43
- # Congress.districts_locate(37.775, -122.418)
44
- # Congress.districts_locate('2169 Mission Street, San Francisco, CA 94110')
39
+ # client.districts_locate('94107')
40
+ # client.districts_locate(37.775, -122.418)
41
+ # client.districts_locate('2169 Mission Street, San Francisco, CA 94110')
45
42
  def districts_locate(*args)
46
43
  get('/districts/locate', extract_location(args))
47
44
  end
@@ -50,8 +47,7 @@ module Congress
50
47
  #
51
48
  # @return [Hashie::Rash]
52
49
  # @example
53
- # Congress.key = YOUR_SUNLIGHT_API_KEY
54
- # Congress.committees
50
+ # client.committees
55
51
  def committees(options = {})
56
52
  get('/committees', options)
57
53
  end
@@ -60,8 +56,7 @@ module Congress
60
56
  #
61
57
  # @return [Hashie::Rash]
62
58
  # @example
63
- # Congress.key = YOUR_SUNLIGHT_API_KEY
64
- # Congress.bills
59
+ # client.bills
65
60
  def bills(options = {})
66
61
  get('/bills', options)
67
62
  end
@@ -70,8 +65,7 @@ module Congress
70
65
  #
71
66
  # @return [Hashie::Rash]
72
67
  # @example
73
- # Congress.key = YOUR_SUNLIGHT_API_KEY
74
- # Congress.bills_search
68
+ # client.bills_search
75
69
  def bills_search(options = {})
76
70
  get('/bills/search', options)
77
71
  end
@@ -80,8 +74,7 @@ module Congress
80
74
  #
81
75
  # @return [Hashie::Rash]
82
76
  # @example
83
- # Congress.key = YOUR_SUNLIGHT_API_KEY
84
- # Congress.votes
77
+ # client.votes
85
78
  def votes(options = {})
86
79
  get('/votes', options)
87
80
  end
@@ -90,18 +83,16 @@ module Congress
90
83
  #
91
84
  # @return [Hashie::Rash]
92
85
  # @example
93
- # Congress.key = YOUR_SUNLIGHT_API_KEY
94
- # Congress.floor_updates
86
+ # client.floor_updates
95
87
  def floor_updates(options = {})
96
88
  get('/floor_updates', options)
97
89
  end
98
90
 
99
- # Committee hearings in Congress. Updated as hearings are announced.
91
+ # Committee hearings in client. Updated as hearings are announced.
100
92
  #
101
93
  # @return [Hashie::Rash]
102
94
  # @example
103
- # Congress.key = YOUR_SUNLIGHT_API_KEY
104
- # Congress.hearings
95
+ # client.hearings
105
96
  def hearings(options = {})
106
97
  get('/hearings', options)
107
98
  end
@@ -110,8 +101,7 @@ module Congress
110
101
  #
111
102
  # @return [Hashie::Rash]
112
103
  # @example
113
- # Congress.key = YOUR_SUNLIGHT_API_KEY
114
- # Congress.upcoming_bills
104
+ # client.upcoming_bills
115
105
  def upcoming_bills(options = {})
116
106
  get('/upcoming_bills', options)
117
107
  end
@@ -18,10 +18,12 @@ module Congress
18
18
  end
19
19
 
20
20
  def middlewares
21
- [Faraday::Request::UrlEncoded,
22
- Faraday::Response::RaiseError,
23
- Faraday::Response::Rashify,
24
- Faraday::Response::ParseJson]
21
+ [
22
+ Faraday::Request::UrlEncoded,
23
+ Faraday::Response::RaiseError,
24
+ Faraday::Response::Mashify,
25
+ Faraday::Response::ParseJson,
26
+ ]
25
27
  end
26
28
  end
27
29
  end
@@ -1,3 +1,45 @@
1
1
  module Congress
2
- VERSION = '0.2.5'
2
+ module Version
3
+ module_function
4
+
5
+ # @return [Integer]
6
+ def major
7
+ 0
8
+ end
9
+
10
+ # @return [Integer]
11
+ def minor
12
+ 3
13
+ end
14
+
15
+ # @return [Integer]
16
+ def patch
17
+ 0
18
+ end
19
+
20
+ # @return [Integer, NilClass]
21
+ def pre
22
+ nil
23
+ end
24
+
25
+ # @return [Hash]
26
+ def to_h
27
+ {
28
+ major: major,
29
+ minor: minor,
30
+ patch: patch,
31
+ pre: pre,
32
+ }
33
+ end
34
+
35
+ # @return [Array]
36
+ def to_a
37
+ to_h.values.compact
38
+ end
39
+
40
+ # @return [String]
41
+ def to_s
42
+ to_a.join('.')
43
+ end
44
+ end
3
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: congress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Michaels-Ober
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-02 00:00:00.000000000 Z
11
+ date: 2015-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -30,42 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.1
33
+ version: 0.10.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.9.1
40
+ version: 0.10.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hashie
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.0'
47
+ version: '3.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.0'
55
- - !ruby/object:Gem::Dependency
56
- name: rash
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.4'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.4'
54
+ version: '3.0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: geocoder
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -137,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
123
  version: '0'
138
124
  requirements: []
139
125
  rubyforge_project:
140
- rubygems_version: 2.4.4
126
+ rubygems_version: 2.4.5
141
127
  signing_key:
142
128
  specification_version: 4
143
129
  summary: Ruby wrapper for the Sunlight Congress API