numverify 0.1.1 → 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: c2f93ebdd35fa507e71d888e0bd6d302fef0ba83
4
- data.tar.gz: 3cc485275e31dc7c6fe010d28ddef07f26959df6
3
+ metadata.gz: c914ba8df5e118ce114d415cc8de3238d16f9740
4
+ data.tar.gz: d16fa6514e2eb8a6e8a6c25f3e11129cfd379f49
5
5
  SHA512:
6
- metadata.gz: 12f981692413f0a74793f3425dc9abae382943824c6c689a8147e9babc0b8d528295014d1c1f8d46b3b2cf93797fbc21fc825d28218ceac28a59b3e65e37903f
7
- data.tar.gz: 5a98e433a6e5a271a0ee6243bd9ea41363fd0f9013e330a5d764715a28f8b23d96bc874e09832faf7c7f873a33db7456613ed5fddb7f40c1c507c9ef987c04ce
6
+ metadata.gz: 1aa0a4372c4954710a1b966c58a1b9d5977af267ee0d16bcdbf1508bf6d1b8fb5fdfcd2f5ece352d68f80041bfb3c8b85f496669cbb9301652ccda135c4a9a36
7
+ data.tar.gz: 4d721dcff846b8981d225f6d48b65fc5dd4de0765ee04317a47bf936d4d17936aca0d6df1701098c7d28ec478d492bd216bb5fb28dd6b1e88f91bbfcdcf0a9f1
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![CircleCI](https://circleci.com/gh/chronogolf/numverify/tree/master.svg?style=shield&circle-token=a035ff061b42aa7812b0db6e744f2168a2f6eb13)](https://circleci.com/gh/chronogolf/numverify/tree/master) [![Code Climate](https://codeclimate.com/github/chronogolf/numverify/badges/gpa.svg)](https://codeclimate.com/github/chronogolf/numverify) [![Gem Version](https://badge.fury.io/rb/numverify.svg)](https://badge.fury.io/rb/numverify)
2
+
1
3
  # Numverify API Client
2
4
 
3
5
  This gem is a non-official Ruby Client for Numverify API service.
@@ -20,18 +22,29 @@ Or install it yourself as:
20
22
 
21
23
  ## Usage
22
24
 
23
- #### Requirments
25
+ #### Requirements
24
26
 
25
27
  In order to use the client with your Numverify account I'll need to specify you `ACCESS_KEY`
26
- This can be done on the fly like:
28
+ This can be done through an initializer like:
27
29
  ```ruby
28
- NumverifyClient.validate(... access_key: 'YOUR_ACCESS_KEY')
30
+ NumverifyClient.configure do |config|
31
+ config.access_key = NUMVERIFY_ACCESS_KEY
32
+ end
29
33
  ```
30
34
  Or more permanently by using the environment variable
31
35
  ```ruby
32
36
  ENV['NUMVERIFY_ACCESS_KEY']
33
37
  ```
34
38
 
39
+ _*Optional*_: You can also choose to use the service through `https`:
40
+ ```ruby
41
+ NumverifyClient.configure do |config|
42
+ ...
43
+ config.https = true
44
+ end
45
+ ```
46
+
47
+
35
48
  #### Number Validation:
36
49
 
37
50
  To validate a phone number just use the `validate` method like:
@@ -1,16 +1,28 @@
1
1
  require 'excon'
2
2
  require 'json'
3
3
  require 'numverify/version'
4
+ require 'numverify/configuration'
4
5
  require 'numverify/request'
5
6
 
6
7
  module NumverifyClient
7
8
  class << self
8
- def validate(number:, country_code: nil, access_key: ENV['NUMVERIFY_ACCESS_KEY'])
9
+ attr_accessor :configuration
10
+
11
+ def configure
12
+ self.configuration ||= Configuration.new
13
+ yield configuration
14
+ end
15
+
16
+ def validate(number:, country_code: nil)
9
17
  request(build_query(number, country_code, access_key)).perform(method: :get)
10
18
  end
11
19
 
12
20
  private
13
21
 
22
+ def access_key
23
+ configuration.access_key || ENV['NUMVERIFY_ACCESS_KEY']
24
+ end
25
+
14
26
  def build_query(number, country_code, access_key)
15
27
  {
16
28
  number: number,
@@ -20,7 +32,7 @@ module NumverifyClient
20
32
  end
21
33
 
22
34
  def request(query)
23
- NumverifyClient::Request.new(query)
35
+ NumverifyClient::Request.new(query: query, https: configuration.https)
24
36
  end
25
37
  end
26
38
  end
@@ -0,0 +1,10 @@
1
+ module NumverifyClient
2
+ class Configuration
3
+ attr_accessor :access_key, :https
4
+
5
+ def initialize
6
+ @access_key = nil
7
+ @https = false
8
+ end
9
+ end
10
+ end
@@ -14,8 +14,8 @@ require 'uri'
14
14
 
15
15
  module NumverifyClient
16
16
  class Request
17
- def initialize(query = {})
18
- @base_uri = 'http://apilayer.net'
17
+ def initialize(query: {}, https: false)
18
+ @base_uri = "#{protocol(https)}://apilayer.net"
19
19
  @query = query
20
20
  @path = '/api/validate'
21
21
  @connection = Excon.new(@base_uri)
@@ -35,6 +35,10 @@ module NumverifyClient
35
35
 
36
36
  private
37
37
 
38
+ def protocol(use_https)
39
+ use_https ? 'https' : 'http'
40
+ end
41
+
38
42
  def handle_error(error)
39
43
  case error['code']
40
44
  when 404
@@ -1,3 +1,3 @@
1
1
  module NumverifyClient
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numverify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olivier Buffon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-28 00:00:00.000000000 Z
11
+ date: 2017-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon
@@ -168,6 +168,7 @@ files:
168
168
  - bin/console
169
169
  - bin/setup
170
170
  - lib/numverify.rb
171
+ - lib/numverify/configuration.rb
171
172
  - lib/numverify/errors/api_error.rb
172
173
  - lib/numverify/errors/https_access_restriction_error.rb
173
174
  - lib/numverify/errors/inactive_user_error.rb