binocular 0.1.0 → 0.2.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: 51b2d605d0d5398dfc93c3f8a59a4aaabe960e9f
4
- data.tar.gz: 5b83ac19d6a8a450881126c63409d92c4d497141
3
+ metadata.gz: b10f4142319cd419ad922a9326378f0d55b81782
4
+ data.tar.gz: b4fe4e0175fe808f80f2da7b272b2ff06c9f8155
5
5
  SHA512:
6
- metadata.gz: a5d9e8d1c442462756ab270b0132e8ee81a125e725f79343ec014f82666abed945e173581b13613f5b94059b3066bd17504d50e7bf21035ff1745b9d2440c9e7
7
- data.tar.gz: f313629e9020c42fbae51e51e512f8672d35f89960818abd095a8d50c77964fefc28ea1ca9b209defadadbbf1a03e53b31000faa89570357cdf2d51528dfcf00
6
+ metadata.gz: 91be53f0d180d42926c3cd90825ab4563075c98ee68122ca5c2dd846fb79829d2325ecf5ee2078f8b023a4af72a62b25445ffc22c8d06a5e970865312d14428c
7
+ data.tar.gz: 76efee7eca77bb8a407395a1dda72416a0ea4abca14e8b277e316485c10159a71a85529f00854749bccebd31d25d5177e70036a927367423d89e76fe9500b7bb
@@ -6,7 +6,7 @@ require "binocular/version"
6
6
  module Binocular
7
7
  class Bin
8
8
  attr_accessor :settings, :bin_number
9
- attr_reader :info
9
+ attr_reader :info, :errors
10
10
  DEFAULT_SETTINGS = { proxy_host: nil, proxy_port: nil }
11
11
 
12
12
  def self.info bin_number
@@ -31,6 +31,7 @@ module Binocular
31
31
  end
32
32
 
33
33
  def fetch_info
34
+ return @errors unless valid?
34
35
  uri = URI.parse("http://www.binlist.net/json/#{self.bin_number}")
35
36
 
36
37
  http = Net::HTTP.new(uri.host, uri.port, self.proxy_host, self.proxy_port)
@@ -41,7 +42,31 @@ module Binocular
41
42
  request = Net::HTTP::Get.new(uri.request_uri)
42
43
  response = http.request(request)
43
44
  @info = JSON.parse response.body
45
+ rescue JSON::ParserError => e
46
+ @errors = { errors: response.body }
47
+ rescue Exception => e
48
+ @errors = { errors: e.to_s }
44
49
  end
45
50
 
51
+ def valid?
52
+ if (numeric? self.bin_number) && (valid_length? self.bin_number)
53
+ return true
54
+ else
55
+ @errors = { errors: "bin_number should be 6-length numeric" }
56
+ return false
57
+ end
58
+ end
59
+
60
+ private
61
+ def numeric? val
62
+ val.to_i.to_s == val.to_s
63
+ rescue
64
+ false
65
+ end
66
+
67
+ def valid_length? val
68
+ val.size == 6
69
+ end
70
+
46
71
  end
47
72
  end
@@ -1,3 +1,3 @@
1
1
  module Binocular
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binocular
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andri Setiawan