ncua 0.7.2 → 0.8.0

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
  SHA1:
3
- metadata.gz: 16c9dd591d860da6e7e8fa6a86e3342e9f2065a9
4
- data.tar.gz: c3c4d2003adbbc3e86c919f69606893d392fd6b0
3
+ metadata.gz: 7239d68f260fe6848f3bb85f19e6f51815531635
4
+ data.tar.gz: b690ef06d9dd96db0af6e6e1e47fd1035f0b506f
5
5
  SHA512:
6
- metadata.gz: de9c5bef9c1b65db09bb1cc1ab2d81dea57ee01bea17b4f0365b5eef2420d52d5f7d5ed6d62981cd4dad82f24dcfc040ade9c39ee99b2d26151c486cfca514d7
7
- data.tar.gz: cc61bb395bad5ae58149fd9caa71fee4b9ebf721ccd5931eaafb9a921ff8ed9d58992eadd96ad1e82c1752479c09e829c0b711762e5576b3323cf5e48904be73
6
+ metadata.gz: df38dffc69a867b8240e751452cfcbe75d55ca20dae4f5fb809dda1c28cc06d15eefe6f26bedd54d871f06ddf3dce6d33439cafd925669cb2bf7e7aa1fdfac9e
7
+ data.tar.gz: b721282110eb5cd8a98a292c0900d850af75da2ad2a7b4f76445edc8bee671b9e67ff4bd60e42e934843bafe90cd1c91369baa596e71180bee9bc9d71e710989
data/README.md CHANGED
@@ -108,6 +108,10 @@ Right now, an `NCUA::CreditUnion::Details` object has the following getters:
108
108
 
109
109
  You can also scrape this directly from the NCUA module by calling `NCUA.find_credit_union(charter_number)`
110
110
 
111
+ If you pass `nil` into this method, it will raise an `ArgumentError`. The NCUA will actually return a 200 without a charter number, but the data on the page is blank.
112
+
113
+ If for some reason the NCUA returns a 500 error when directly scraping for credit union details, the gem will raise `NCUA::CreditUnion::ServerError`. This can happen if your charter number is invalid.
114
+
111
115
  ## Contributing
112
116
 
113
117
  Bug reports and pull requests are welcome on GitHub at https://github.com/ContinuityControl/ncua.
@@ -6,6 +6,7 @@ require 'ncua/credit_union/record'
6
6
  require 'ncua/credit_union/office'
7
7
  require 'ncua/credit_union/details'
8
8
  require 'ncua/credit_union/scraper'
9
+ require 'ncua/credit_union/details_client'
9
10
 
10
11
  module NCUA
11
12
  def self.find_office_by_address(address, opts={radius: 100})
@@ -0,0 +1,36 @@
1
+ module NCUA
2
+ module CreditUnion
3
+ class ServerError < ::StandardError; end
4
+ class DetailsClient
5
+ include HTTParty
6
+
7
+ base_uri 'http://mapping.ncua.gov'
8
+ def get_details(charter_number)
9
+ if charter_number.nil?
10
+ raise ArgumentError, "charter number cannot be nil"
11
+ end
12
+
13
+ response = execute_query(charter_number)
14
+
15
+ case response.code
16
+ when 200...300
17
+ response
18
+ when 500...600
19
+ raise ServerError
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def endpoint
26
+ '/SingleResult.aspx'
27
+ end
28
+
29
+ def execute_query(charter_number)
30
+ self.class.get(endpoint, query: {
31
+ "ID" => charter_number
32
+ })
33
+ end
34
+ end
35
+ end
36
+ end
@@ -2,9 +2,6 @@ module NCUA
2
2
  module CreditUnion
3
3
  class Scraper
4
4
  #This bit is as brittle as glass, as coupled as conjoined twins, and as stinky as bad cheese
5
- include HTTParty
6
-
7
- base_uri 'http://mapping.ncua.gov'
8
5
  def initialize(charter_number)
9
6
  @charter_number = charter_number
10
7
  end
@@ -36,13 +33,7 @@ module NCUA
36
33
  end
37
34
 
38
35
  def request
39
- self.class.get(endpoint, query: {
40
- "ID" => @charter_number
41
- })
42
- end
43
-
44
- def endpoint
45
- '/SingleResult.aspx'
36
+ @request ||= DetailsClient.new.get_details(@charter_number)
46
37
  end
47
38
  end
48
39
  end
@@ -1,3 +1,3 @@
1
1
  module NCUA
2
- VERSION = "0.7.2"
2
+ VERSION = "0.8.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ncua
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Reznick
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-09-13 00:00:00.000000000 Z
11
+ date: 2015-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -105,6 +105,7 @@ files:
105
105
  - lib/ncua.rb
106
106
  - lib/ncua/client.rb
107
107
  - lib/ncua/credit_union/details.rb
108
+ - lib/ncua/credit_union/details_client.rb
108
109
  - lib/ncua/credit_union/office.rb
109
110
  - lib/ncua/credit_union/record.rb
110
111
  - lib/ncua/credit_union/scraper.rb