propublica-nonprofits 1.0.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c05c2a3977841806bac525c3c642db9a94bf0755c3d098c4852276b092b49168
4
- data.tar.gz: ecbbd8799e9d43592ea52d8e2ab4754f74fef539dec2a3eab0d7a415513acf1b
3
+ metadata.gz: e0a19befd3e19f50b9aece3f7a75d06ef204b05f9f8f6dfbe3bd086976329cb1
4
+ data.tar.gz: 267fee39254403c855b03559e365bc11c5789a2416f7793d424d6d539649f38b
5
5
  SHA512:
6
- metadata.gz: 1e30af0a7b67f51505022bf3a6e8b63f91fff5bb702c5a531dbed24585194d8e9d0f966b4097d128c67d1a98bc26e44ca533acd64e4681fa6d7ab2ef17da55c3
7
- data.tar.gz: 9c34f58bc0c29ccabd62af0d62974f71f3557a907551e0f83521e657b20e5534f4afa9c78d1203dd83270be48cd3f7420059dba90069e263eb885c1e58628c30
6
+ metadata.gz: 0362c9a826f7f929fa1295c1c262ea49874db544b0c547b4c6b97cd27c51bab3b8151303f0330ce4617915513bcb128ffe8dcec250926d977f972ce6b023a7f1
7
+ data.tar.gz: ada943260642735058447b391bba1ea961e9e425fc3796a07baddbd64c5a9e7aa402040f32d2aea2fc69afd8337ab402b8afe5577ed4f111bcfde480b085d4e2
data/Gemfile.lock CHANGED
@@ -1,52 +1,35 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- propublica-nonprofits (1.0.0)
5
- faraday
4
+ propublica-nonprofits (1.1.1)
5
+ faraday (> 1.0, < 3.0)
6
6
  json
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- addressable (2.8.0)
12
- public_suffix (>= 2.0.2, < 5.0)
13
- coderay (1.1.2)
14
- crack (0.4.3)
15
- safe_yaml (~> 1.0.0)
16
- faraday (1.5.1)
17
- faraday-em_http (~> 1.0)
18
- faraday-em_synchrony (~> 1.0)
19
- faraday-excon (~> 1.1)
20
- faraday-httpclient (~> 1.0.1)
21
- faraday-net_http (~> 1.0)
22
- faraday-net_http_persistent (~> 1.1)
23
- faraday-patron (~> 1.0)
24
- multipart-post (>= 1.2, < 3)
11
+ addressable (2.8.1)
12
+ public_suffix (>= 2.0.2, < 6.0)
13
+ base64 (0.2.0)
14
+ crack (0.4.5)
15
+ rexml
16
+ faraday (2.7.12)
17
+ base64
18
+ faraday-net_http (>= 2.0, < 3.1)
25
19
  ruby2_keywords (>= 0.0.4)
26
- faraday-em_http (1.0.0)
27
- faraday-em_synchrony (1.0.0)
28
- faraday-excon (1.1.0)
29
- faraday-httpclient (1.0.1)
30
- faraday-net_http (1.0.1)
31
- faraday-net_http_persistent (1.2.0)
32
- faraday-patron (1.0.0)
33
- hashdiff (1.0.0)
34
- json (2.5.1)
35
- method_source (0.9.0)
20
+ faraday-net_http (3.0.2)
21
+ hashdiff (1.0.1)
22
+ json (2.7.1)
36
23
  minitest (5.11.3)
37
24
  minitest-line (0.6.5)
38
25
  minitest (~> 5.0)
39
- multipart-post (2.1.1)
40
- pry (0.11.3)
41
- coderay (~> 1.1.0)
42
- method_source (~> 0.9.0)
43
- public_suffix (4.0.6)
26
+ public_suffix (5.0.1)
44
27
  rake (13.0.1)
45
- ruby2_keywords (0.0.4)
46
- safe_yaml (1.0.5)
47
- vcr (4.0.0)
48
- webmock (3.7.6)
49
- addressable (>= 2.3.6)
28
+ rexml (3.2.5)
29
+ ruby2_keywords (0.0.5)
30
+ vcr (6.1.0)
31
+ webmock (3.18.1)
32
+ addressable (>= 2.8.0)
50
33
  crack (>= 0.3.2)
51
34
  hashdiff (>= 0.4.0, < 2.0.0)
52
35
 
@@ -58,10 +41,10 @@ DEPENDENCIES
58
41
  minitest (~> 5.0)
59
42
  minitest-line
60
43
  propublica-nonprofits!
61
- pry
62
44
  rake (~> 13.0)
45
+ rexml
63
46
  vcr
64
47
  webmock
65
48
 
66
49
  BUNDLED WITH
67
- 2.2.23
50
+ 2.3.10
@@ -1,5 +1,5 @@
1
1
  module Propublica
2
2
  module Nonprofits
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.1"
4
4
  end
5
5
  end
@@ -21,8 +21,7 @@ end
21
21
 
22
22
  module Propublica
23
23
  module Nonprofits
24
- class DataNotFetched < StandardError
25
- end
24
+ DataNotFetched = Class.new(StandardError)
26
25
 
27
26
  def self.search(term, state: nil, ntee: nil, page: nil, fetch_all: false)
28
27
  search_results(term, state: state, ntee: ntee, page: page, fetch_all: fetch_all)
@@ -48,22 +47,12 @@ module Propublica
48
47
  params["ntee[id]"] = ntee if ntee
49
48
  params["page"] = page if page
50
49
 
51
- response = Faraday.default_connection.get("#{API_BASE_URL}/#{API_SEARCH_PATH}", params)
52
- parsed_response =
53
- if response.body.is_a?(Hash)
54
- response.body
55
- else
56
- begin
57
- JSON.parse(response.body)
58
- rescue JSON::ParserError => e
59
- raise JSON::ParserError.new("Propublica API Parsing Error: #{e.message}")
60
- end
61
- end
62
-
63
- max_pages = parsed_response.dig("num_pages") || max_pages
50
+ response = connection.get("/#{API_SEARCH_PATH}", params)
51
+ max_pages = response.body.dig("num_pages") || max_pages
64
52
 
65
53
  yielder <<
66
- parsed_response
54
+ response
55
+ .body
67
56
  .fetch("organizations", [])
68
57
  .map { |basic_attrs| Propublica::Nonprofits::Organization.new("basic" => basic_attrs) }
69
58
 
@@ -74,24 +63,34 @@ module Propublica
74
63
  end
75
64
  end
76
65
  end
66
+
67
+ rescue JSON::ParserError => e
68
+ raise JSON::ParserError.new("Propublica API Parsing Error: #{e.message}")
77
69
  end
78
70
 
79
71
  def self.find(ein)
80
- attributes = self.find_attributes(ein)
81
- Propublica::Nonprofits::Organization.new(attributes)
72
+ Propublica::Nonprofits::Organization.new(
73
+ self.find_attributes(ein)
74
+ )
82
75
  end
83
76
 
84
- def self.find_attributes(ein)
85
- response = Faraday.get("#{API_BASE_URL}/nonprofits/api/v2/organizations/#{ein}.json")
86
- if response.body.is_a?(Hash)
87
- response.body
88
- else
89
- begin
90
- JSON.parse(response.body)
91
- rescue JSON::ParserError => e
92
- raise JSON::ParserError.new("Propublica API Parsing Error: #{e.message}")
77
+ def self.connection
78
+ Faraday
79
+ .new(API_BASE_URL) do |f|
80
+ f.use Faraday::Response::RaiseError
81
+ f.response :json
93
82
  end
94
- end
83
+ end
84
+
85
+ def self.find_attributes(ein)
86
+ connection
87
+ .get("/nonprofits/api/v2/organizations/#{ein}.json")
88
+ .body
89
+
90
+ rescue JSON::ParserError => e
91
+ raise JSON::ParserError.new("Propublica API Parsing Error: #{e.message}")
92
+ rescue Faraday::ServerError, Faraday::ClientError => e
93
+ raise DataNotFetched.new("Propublica API Error: #{e.message}")
95
94
  end
96
95
  end
97
96
  end
@@ -25,11 +25,11 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "bundler", ">= 2.2.10"
26
26
  spec.add_development_dependency "minitest-line"
27
27
  spec.add_development_dependency "minitest", "~> 5.0"
28
- spec.add_development_dependency "pry"
29
28
  spec.add_development_dependency "rake", "~> 13.0"
30
29
  spec.add_development_dependency "vcr"
31
30
  spec.add_development_dependency "webmock"
31
+ spec.add_development_dependency "rexml"
32
32
 
33
- spec.add_dependency "faraday"
33
+ spec.add_dependency "faraday", "> 1.0", "< 3.0"
34
34
  spec.add_dependency "json"
35
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: propublica-nonprofits
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricky Chilcott
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-13 00:00:00.000000000 Z
11
+ date: 2023-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
- - !ruby/object:Gem::Dependency
56
- name: pry
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rake
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -109,19 +95,39 @@ dependencies:
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
- name: faraday
98
+ name: rexml
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
101
  - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
- type: :runtime
104
+ type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - ">="
123
109
  - !ruby/object:Gem::Version
124
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faraday
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ - - "<"
119
+ - !ruby/object:Gem::Version
120
+ version: '3.0'
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">"
126
+ - !ruby/object:Gem::Version
127
+ version: '1.0'
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '3.0'
125
131
  - !ruby/object:Gem::Dependency
126
132
  name: json
127
133
  requirement: !ruby/object:Gem::Requirement
@@ -183,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
189
  - !ruby/object:Gem::Version
184
190
  version: '0'
185
191
  requirements: []
186
- rubygems_version: 3.1.2
192
+ rubygems_version: 3.4.22
187
193
  signing_key:
188
194
  specification_version: 4
189
195
  summary: Ruby wrapper for the Propublica Nonprofits API https://projects.propublica.org/nonprofits/api/v2