ruby_hlr_client 0.0.13 → 0.0.14
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.
- data/.gitignore +2 -2
- data/Gemfile +4 -4
- data/bin/test_callback_handler.rb +23 -23
- data/bin/test_client.rb +83 -48
- data/create_gem.txt +1 -1
- data/lib/ruby_hlr_client.rb +2 -2
- data/lib/ruby_hlr_client/hlr_callback_handler.rb +36 -36
- data/lib/ruby_hlr_client/hlr_client.rb +237 -151
- data/lib/ruby_hlr_client/version.rb +3 -3
- data/ruby_hlr_client.gemspec +26 -26
- metadata +81 -60
- checksums.yaml +0 -15
data/.gitignore
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
pkg/*
|
2
|
-
*.gem
|
1
|
+
pkg/*
|
2
|
+
*.gem
|
3
3
|
.bundle
|
data/Gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source 'http://rubygems.org'
|
2
|
-
|
3
|
-
# Specify dependencies in ruby_hlr_client.gemspec
|
4
|
-
gemspec
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
# Specify dependencies in ruby_hlr_client.gemspec
|
4
|
+
gemspec
|
@@ -1,23 +1,23 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'sinatra'
|
4
|
-
require 'ruby_hlr_client/hlr_callback_handler'
|
5
|
-
|
6
|
-
set :run, true
|
7
|
-
|
8
|
-
get '/' do
|
9
|
-
|
10
|
-
client = RubyHlrClient::HlrCallbackHandler.new
|
11
|
-
|
12
|
-
# Parses an asynchronous HLR Lookup callback and returns a JSON string with the results.
|
13
|
-
# @param params
|
14
|
-
# @returns string (JSON)
|
15
|
-
#
|
16
|
-
# Return example: {"success":true,"results":[{"id":"40ebb8d9e7cc","msisdncountrycode":"DE","msisdn":"+491788735001","statuscode":"HLRSTATUS_DELIVERED","hlrerrorcodeid":null,"subscriberstatus":"SUBSCRIBERSTATUS_CONNECTED","imsi":"262032000000000","mccmnc":"26203","mcc":"262","mnc":"03","msin":"2000000000","servingmsc":"491770","servinghlr":null,"originalnetworkname":"178","originalcountryname":"Germany","originalcountrycode":"DE","originalcountryprefix":"+49","originalnetworkprefix":"178","roamingnetworkname":null,"roamingcountryname":null,"roamingcountrycode":null,"roamingcountryprefix":null,"roamingnetworkprefix":null,"portednetworkname":null,"portedcountryname":null,"portedcountrycode":null,"portedcountryprefix":null,"portednetworkprefix":null,"isvalid":"Yes","isroaming":"No","isported":"No","usercharge":"0.0100","inserttime":"2014-12-28 05:53:03.765798+08","storage":"ASYNC-API","route":"IP4"}]}
|
17
|
-
print client.parse_callback(params)
|
18
|
-
|
19
|
-
# send HTTP response body (OK)
|
20
|
-
content_type :text
|
21
|
-
return client.send_response
|
22
|
-
|
23
|
-
end
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'sinatra'
|
4
|
+
require 'ruby_hlr_client/hlr_callback_handler'
|
5
|
+
|
6
|
+
set :run, true
|
7
|
+
|
8
|
+
get '/' do
|
9
|
+
|
10
|
+
client = RubyHlrClient::HlrCallbackHandler.new
|
11
|
+
|
12
|
+
# Parses an asynchronous HLR Lookup callback and returns a JSON string with the results.
|
13
|
+
# @param params
|
14
|
+
# @returns string (JSON)
|
15
|
+
#
|
16
|
+
# Return example: {"success":true,"results":[{"id":"40ebb8d9e7cc","msisdncountrycode":"DE","msisdn":"+491788735001","statuscode":"HLRSTATUS_DELIVERED","hlrerrorcodeid":null,"subscriberstatus":"SUBSCRIBERSTATUS_CONNECTED","imsi":"262032000000000","mccmnc":"26203","mcc":"262","mnc":"03","msin":"2000000000","servingmsc":"491770","servinghlr":null,"originalnetworkname":"178","originalcountryname":"Germany","originalcountrycode":"DE","originalcountryprefix":"+49","originalnetworkprefix":"178","roamingnetworkname":null,"roamingcountryname":null,"roamingcountrycode":null,"roamingcountryprefix":null,"roamingnetworkprefix":null,"portednetworkname":null,"portedcountryname":null,"portedcountrycode":null,"portedcountryprefix":null,"portednetworkprefix":null,"isvalid":"Yes","isroaming":"No","isported":"No","usercharge":"0.0100","inserttime":"2014-12-28 05:53:03.765798+08","storage":"ASYNC-API","route":"IP4"}]}
|
17
|
+
print client.parse_callback(params)
|
18
|
+
|
19
|
+
# send HTTP response body (OK)
|
20
|
+
content_type :text
|
21
|
+
return client.send_response
|
22
|
+
|
23
|
+
end
|
data/bin/test_client.rb
CHANGED
@@ -1,49 +1,84 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'ruby_hlr_client/hlr_client'
|
4
|
-
|
5
|
-
# Initializes the HLR Lookup Client
|
6
|
-
# @param username - www.hlr-lookups.com username
|
7
|
-
# @param password - www.hlr-lookups.com password
|
8
|
-
# @param ssl - set to false to disable SSL
|
9
|
-
# @constructor
|
10
|
-
client = RubyHlrClient::HlrClient.new(
|
11
|
-
'username',
|
12
|
-
'password'
|
13
|
-
)
|
14
|
-
print "\n"
|
15
|
-
|
16
|
-
# Submits a synchronous HLR Lookup request. The HLR is queried in real time and results presented in the response body.
|
17
|
-
# @param msisdn - An MSISDN in international format, e.g. +491788735000
|
18
|
-
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
19
|
-
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
20
|
-
# @returns string (JSON)
|
21
|
-
#
|
22
|
-
# Return example: {"success":true,"results":[{"id":"e1fdf26531e4","msisdncountrycode":"DE","msisdn":"+491788735000","statuscode":"HLRSTATUS_DELIVERED","hlrerrorcodeid":null,"subscriberstatus":"SUBSCRIBERSTATUS_CONNECTED","imsi":"262031300000000","mccmnc":"26203","mcc":"262","mnc":"03","msin":"1300000000","servingmsc":"140445","servinghlr":null,"originalnetworkname":"E-Plus","originalcountryname":"Germany","originalcountrycode":"DE","originalcountryprefix":"+49","originalnetworkprefix":"178","roamingnetworkname":"Fixed Line Operators and Other Networks","roamingcountryname":"United States","roamingcountrycode":"US","roamingcountryprefix":"+1","roamingnetworkprefix":"404455","portednetworkname":null,"portedcountryname":null,"portedcountrycode":null,"portedcountryprefix":null,"portednetworkprefix":null,"isvalid":"Yes","isroaming":"Yes","isported":"No","usercharge":"0.0100","inserttime":"2014-12-28 06:22:00.328844+08","storage":"SDK-TEST-SYNC-API","route":"IP1"}]}
|
23
|
-
print client.submit_sync_lookup_request('+491788735000', 'IP4', 'SDK-TEST')
|
24
|
-
print "\n\n"
|
25
|
-
|
26
|
-
#
|
27
|
-
# @param
|
28
|
-
# @
|
29
|
-
#
|
30
|
-
#
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
#
|
37
|
-
# @param
|
38
|
-
# @returns string (JSON)
|
39
|
-
#
|
40
|
-
# Return example: {"success":true,"messages":[],"results":{"
|
41
|
-
print client.
|
42
|
-
print "\n\n"
|
43
|
-
|
44
|
-
#
|
45
|
-
# @
|
46
|
-
#
|
47
|
-
#
|
48
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'ruby_hlr_client/hlr_client'
|
4
|
+
|
5
|
+
# Initializes the HLR Lookup Client
|
6
|
+
# @param username - www.hlr-lookups.com username
|
7
|
+
# @param password - www.hlr-lookups.com password
|
8
|
+
# @param ssl - set to false to disable SSL
|
9
|
+
# @constructor
|
10
|
+
client = RubyHlrClient::HlrClient.new(
|
11
|
+
'username',
|
12
|
+
'password'
|
13
|
+
)
|
14
|
+
print "\n"
|
15
|
+
|
16
|
+
# Submits a synchronous HLR Lookup request. The HLR is queried in real time and results presented in the response body.
|
17
|
+
# @param msisdn - An MSISDN in international format, e.g. +491788735000
|
18
|
+
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
19
|
+
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
20
|
+
# @returns string (JSON)
|
21
|
+
#
|
22
|
+
# Return example: {"success":true,"results":[{"id":"e1fdf26531e4","msisdncountrycode":"DE","msisdn":"+491788735000","statuscode":"HLRSTATUS_DELIVERED","hlrerrorcodeid":null,"subscriberstatus":"SUBSCRIBERSTATUS_CONNECTED","imsi":"262031300000000","mccmnc":"26203","mcc":"262","mnc":"03","msin":"1300000000","servingmsc":"140445","servinghlr":null,"originalnetworkname":"E-Plus","originalcountryname":"Germany","originalcountrycode":"DE","originalcountryprefix":"+49","originalnetworkprefix":"178","roamingnetworkname":"Fixed Line Operators and Other Networks","roamingcountryname":"United States","roamingcountrycode":"US","roamingcountryprefix":"+1","roamingnetworkprefix":"404455","portednetworkname":null,"portedcountryname":null,"portedcountrycode":null,"portedcountryprefix":null,"portednetworkprefix":null,"isvalid":"Yes","isroaming":"Yes","isported":"No","usercharge":"0.0100","inserttime":"2014-12-28 06:22:00.328844+08","storage":"SDK-TEST-SYNC-API","route":"IP1"}]}
|
23
|
+
print client.submit_sync_lookup_request('+491788735000', 'IP4', 'SDK-TEST')
|
24
|
+
print "\n\n"
|
25
|
+
|
26
|
+
# Submits a synchronous number type lookup request. Results are presented in the response body.
|
27
|
+
# @param number - An number in international format, e.g. +4989702626
|
28
|
+
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
29
|
+
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
30
|
+
# @returns string (JSON)
|
31
|
+
#
|
32
|
+
# Return example: { "success":true, "results":[ { "id":"2ed0788379c6", "number":"+4989702626", "numbertype":"LANDLINE", "state":"COMPLETED", "isvalid":"Yes", "ispossiblyported":"No", "isvalidshortnumber":"No", "isvanitynumber":"No", "qualifiesforhlrlookup":"No", "originalcarrier":null, "mccmnc":null, "mcc":null, "mnc":null, "countrycode":"DE", "region":"Munich", "timezones":[ "Europe\/Berlin" ], "infotext":"This is a landline number.", "usercharge":"0.0050", "inserttime":"2015-12-04 10:36:41.866283+00", "storage":"SYNC-API-NT-2015-12", "route":"LC1" } ] }
|
33
|
+
print client.submit_sync_number_type_lookup_request('+4989702626', 'LC1', 'SDK-TEST')
|
34
|
+
print "\n\n"
|
35
|
+
|
36
|
+
# Sets the callback URL for asynchronous lookups. Read more about the concept of asynchronous HLR lookups @ http://www.hlr-lookups.com/en/asynchronous-hlr-lookup-api
|
37
|
+
# @param url - callback url on your server
|
38
|
+
# @returns string (JSON)
|
39
|
+
#
|
40
|
+
# Return example: {"success":true,"messages":[],"results":{"url":"http:\/\/user:pass@www.your-server.com\/path\/file"}}
|
41
|
+
print client.set_async_callback_url('http://user:pass@www.your-server.com/path/file')
|
42
|
+
print "\n\n"
|
43
|
+
|
44
|
+
# Sets the callback URL for asynchronous number type lookups.
|
45
|
+
# @param url - callback url on your server
|
46
|
+
# @returns string (JSON)
|
47
|
+
#
|
48
|
+
# Return example: {"success":true,"messages":[],"results":{"url":"http:\/\/user:pass@www.your-server.com\/path\/file"}}
|
49
|
+
print client.set_nt_async_callback_url('http://user:pass@www.your-server.com/path/file')
|
50
|
+
print "\n\n"
|
51
|
+
|
52
|
+
# Submits asynchronous HLR Lookups containing up to 1,000 MSISDNs per request. Results are sent back asynchronously to a callback URL on your server. Use \VmgLtd\HlrCallbackHandler to capture them.
|
53
|
+
# @param msisdns - A list of MSISDNs in international format, e.g. +491788735000
|
54
|
+
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
55
|
+
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
56
|
+
# @returns string (JSON)
|
57
|
+
#
|
58
|
+
# Return example: {"success":true,"messages":[],"results":{"acceptedMsisdns":[{"id":"e489a092eba7","msisdn":"+491788735000"},{"id":"23ad48bf0c26","msisdn":"+491788735001"}],"rejectedMsisdns":[],"acceptedMsisdnCount":2,"rejectedMsisdnCount":0,"totalCount":2,"charge":0.02,"storage":"SDK-TEST-ASYNC-API","route":"IP4"}}
|
59
|
+
print client.submit_async_lookup_request(['+491788735000', '+491788735001'])
|
60
|
+
print "\n\n"
|
61
|
+
|
62
|
+
# Submits asynchronous number type lookups containing up to 1,000 numbers per request. Results are sent back asynchronously to a callback URL on your server.
|
63
|
+
# @param numbers - A list of numbers in international format, e.g. +4989702626,+491788735000
|
64
|
+
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
65
|
+
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
66
|
+
# @returns string (JSON)
|
67
|
+
#
|
68
|
+
# Return example: { "success":true, "messages":[], "results":{ "acceptedNumbers":[ { "id":"f09b30014d5e", "number":"+4989702626" }, { "id":"364c0ad33c02", "number":"+491788735000" } ], "rejectedNumbers":[ { "id":null, "number":"asdf" } ], "acceptedNumberCount":2, "rejectedNumberCount":1, "totalCount":3, "charge":0.01, "storage":"ASYNC-API-NT-2015-12", "route":"LC1" } }
|
69
|
+
print client.submit_async_number_type_lookup_request(['+4989702626','+491788735000'])
|
70
|
+
print "\n\n"
|
71
|
+
|
72
|
+
# Returns the remaining balance (EUR) in your account.
|
73
|
+
# @returns string (JSON)
|
74
|
+
#
|
75
|
+
# Return example: {"success":true,"messages":[],"results":{"balance":"5878.24600"}}
|
76
|
+
print client.get_balance
|
77
|
+
print "\n\n"
|
78
|
+
|
79
|
+
# Performs a health check on the system status, the user account and availability of each route.
|
80
|
+
# @returns string (JSON)
|
81
|
+
#
|
82
|
+
# Return example: { "success":true, "results":{ "system":{ "state":"up" }, "routes":{ "states":{ "IP1":"up", "ST2":"up", "SV3":"up", "IP4":"up", "XT5":"up", "XT6":"up", "NT7":"up", "LC1":"up" } }, "account":{ "lookupsPermitted":true, "balance":"295.23000" } } }
|
83
|
+
print client.do_health_check
|
49
84
|
print "\n"
|
data/create_gem.txt
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
1. rake install
|
1
|
+
1. rake install
|
2
2
|
2. cd pkg/; gem push ruby_hlr_client-VERSION.gem
|
data/lib/ruby_hlr_client.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
module RubyHlrClient
|
2
|
-
# Your code goes here...
|
1
|
+
module RubyHlrClient
|
2
|
+
# Your code goes here...
|
3
3
|
end
|
@@ -1,36 +1,36 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
|
-
module RubyHlrClient
|
4
|
-
class HlrCallbackHandler
|
5
|
-
|
6
|
-
# Parses an asynchronous HLR Lookup callback and returns a JSON string with the results.
|
7
|
-
# @param params
|
8
|
-
# @returns {*}
|
9
|
-
#
|
10
|
-
# Return example: {"success":true,"results":[{"id":"40ebb8d9e7cc","msisdncountrycode":"DE","msisdn":"+491788735001","statuscode":"HLRSTATUS_DELIVERED","hlrerrorcodeid":null,"subscriberstatus":"SUBSCRIBERSTATUS_CONNECTED","imsi":"262032000000000","mccmnc":"26203","mcc":"262","mnc":"03","msin":"2000000000","servingmsc":"491770","servinghlr":null,"originalnetworkname":"178","originalcountryname":"Germany","originalcountrycode":"DE","originalcountryprefix":"+49","originalnetworkprefix":"178","roamingnetworkname":null,"roamingcountryname":null,"roamingcountrycode":null,"roamingcountryprefix":null,"roamingnetworkprefix":null,"portednetworkname":null,"portedcountryname":null,"portedcountrycode":null,"portedcountryprefix":null,"portednetworkprefix":null,"isvalid":"Yes","isroaming":"No","isported":"No","usercharge":"0.0100","inserttime":"2014-12-28 05:53:03.765798+08","storage":"ASYNC-API","route":"IP4"}]}
|
11
|
-
def parse_callback(params)
|
12
|
-
|
13
|
-
unless params.has_key?('json')
|
14
|
-
return generate_error_result('Invalid callback parameters. Missing json payload.')
|
15
|
-
end
|
16
|
-
|
17
|
-
params['json']
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
def send_response
|
22
|
-
|
23
|
-
'OK'
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
def generate_error_result(message)
|
28
|
-
|
29
|
-
result = {:success => false, :fieldErrors => [], :globalErrors => ["#{message}"]}
|
30
|
-
result.to_json
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module RubyHlrClient
|
4
|
+
class HlrCallbackHandler
|
5
|
+
|
6
|
+
# Parses an asynchronous HLR Lookup callback and returns a JSON string with the results.
|
7
|
+
# @param params
|
8
|
+
# @returns {*}
|
9
|
+
#
|
10
|
+
# Return example: {"success":true,"results":[{"id":"40ebb8d9e7cc","msisdncountrycode":"DE","msisdn":"+491788735001","statuscode":"HLRSTATUS_DELIVERED","hlrerrorcodeid":null,"subscriberstatus":"SUBSCRIBERSTATUS_CONNECTED","imsi":"262032000000000","mccmnc":"26203","mcc":"262","mnc":"03","msin":"2000000000","servingmsc":"491770","servinghlr":null,"originalnetworkname":"178","originalcountryname":"Germany","originalcountrycode":"DE","originalcountryprefix":"+49","originalnetworkprefix":"178","roamingnetworkname":null,"roamingcountryname":null,"roamingcountrycode":null,"roamingcountryprefix":null,"roamingnetworkprefix":null,"portednetworkname":null,"portedcountryname":null,"portedcountrycode":null,"portedcountryprefix":null,"portednetworkprefix":null,"isvalid":"Yes","isroaming":"No","isported":"No","usercharge":"0.0100","inserttime":"2014-12-28 05:53:03.765798+08","storage":"ASYNC-API","route":"IP4"}]}
|
11
|
+
def parse_callback(params)
|
12
|
+
|
13
|
+
unless params.has_key?('json')
|
14
|
+
return generate_error_result('Invalid callback parameters. Missing json payload.')
|
15
|
+
end
|
16
|
+
|
17
|
+
params['json']
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
def send_response
|
22
|
+
|
23
|
+
'OK'
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def generate_error_result(message)
|
28
|
+
|
29
|
+
result = {:success => false, :fieldErrors => [], :globalErrors => ["#{message}"]}
|
30
|
+
result.to_json
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -1,151 +1,237 @@
|
|
1
|
-
require 'rest_client'
|
2
|
-
require 'json'
|
3
|
-
|
4
|
-
module RubyHlrClient
|
5
|
-
|
6
|
-
class HlrClient
|
7
|
-
|
8
|
-
# Initializes the HLR Lookup Client
|
9
|
-
# @param username - www.hlr-lookups.com username
|
10
|
-
# @param password - www.hlr-lookups.com password
|
11
|
-
# @param ssl - set to false to disable SSL
|
12
|
-
# @constructor
|
13
|
-
def initialize(username, password, ssl = true)
|
14
|
-
@username = username
|
15
|
-
@password = password
|
16
|
-
@url = "#{ssl ? 'https' : 'http'}://www.hlr-lookups.com/api"
|
17
|
-
end
|
18
|
-
|
19
|
-
# Submits a synchronous HLR Lookup request. The HLR is queried in real time and results presented in the response body.
|
20
|
-
# @param msisdn - An MSISDN in international format, e.g. +491788735000
|
21
|
-
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
22
|
-
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
23
|
-
# @returns string (JSON)
|
24
|
-
#
|
25
|
-
# Return example: {"success":true,"results":[{"id":"e1fdf26531e4","msisdncountrycode":"DE","msisdn":"+491788735000","statuscode":"HLRSTATUS_DELIVERED","hlrerrorcodeid":null,"subscriberstatus":"SUBSCRIBERSTATUS_CONNECTED","imsi":"262031300000000","mccmnc":"26203","mcc":"262","mnc":"03","msin":"1300000000","servingmsc":"140445","servinghlr":null,"originalnetworkname":"E-Plus","originalcountryname":"Germany","originalcountrycode":"DE","originalcountryprefix":"+49","originalnetworkprefix":"178","roamingnetworkname":"Fixed Line Operators and Other Networks","roamingcountryname":"United States","roamingcountrycode":"US","roamingcountryprefix":"+1","roamingnetworkprefix":"404455","portednetworkname":null,"portedcountryname":null,"portedcountrycode":null,"portedcountryprefix":null,"portednetworkprefix":null,"isvalid":"Yes","isroaming":"Yes","isported":"No","usercharge":"0.0100","inserttime":"2014-12-28 06:22:00.328844+08","storage":"SDK-TEST-SYNC-API","route":"IP1"}]}
|
26
|
-
def submit_sync_lookup_request(msisdn, route = nil, storage = nil)
|
27
|
-
|
28
|
-
params = {
|
29
|
-
:action => 'submitSyncLookupRequest',
|
30
|
-
:msisdn => msisdn,
|
31
|
-
:username => @username,
|
32
|
-
:password => @password
|
33
|
-
}
|
34
|
-
|
35
|
-
unless route.nil?
|
36
|
-
params.merge!(route: route)
|
37
|
-
end
|
38
|
-
|
39
|
-
unless storage.nil?
|
40
|
-
params.merge!(storage: storage)
|
41
|
-
end
|
42
|
-
|
43
|
-
send_request(params)
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
# Submits
|
48
|
-
# @param
|
49
|
-
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
50
|
-
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
51
|
-
# @returns string (JSON)
|
52
|
-
#
|
53
|
-
# Return example: {"success":true,"
|
54
|
-
def
|
55
|
-
|
56
|
-
params = {
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
}
|
62
|
-
|
63
|
-
unless route.nil?
|
64
|
-
params.merge!(route: route)
|
65
|
-
end
|
66
|
-
|
67
|
-
unless storage.nil?
|
68
|
-
params.merge!(storage: storage)
|
69
|
-
end
|
70
|
-
|
71
|
-
send_request(params)
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
#
|
76
|
-
# @param
|
77
|
-
# @
|
78
|
-
#
|
79
|
-
#
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
}
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
1
|
+
require 'rest_client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module RubyHlrClient
|
5
|
+
|
6
|
+
class HlrClient
|
7
|
+
|
8
|
+
# Initializes the HLR Lookup Client
|
9
|
+
# @param username - www.hlr-lookups.com username
|
10
|
+
# @param password - www.hlr-lookups.com password
|
11
|
+
# @param ssl - set to false to disable SSL
|
12
|
+
# @constructor
|
13
|
+
def initialize(username, password, ssl = true)
|
14
|
+
@username = username
|
15
|
+
@password = password
|
16
|
+
@url = "#{ssl ? 'https' : 'http'}://www.hlr-lookups.com/api"
|
17
|
+
end
|
18
|
+
|
19
|
+
# Submits a synchronous HLR Lookup request. The HLR is queried in real time and results presented in the response body.
|
20
|
+
# @param msisdn - An MSISDN in international format, e.g. +491788735000
|
21
|
+
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
22
|
+
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
23
|
+
# @returns string (JSON)
|
24
|
+
#
|
25
|
+
# Return example: {"success":true,"results":[{"id":"e1fdf26531e4","msisdncountrycode":"DE","msisdn":"+491788735000","statuscode":"HLRSTATUS_DELIVERED","hlrerrorcodeid":null,"subscriberstatus":"SUBSCRIBERSTATUS_CONNECTED","imsi":"262031300000000","mccmnc":"26203","mcc":"262","mnc":"03","msin":"1300000000","servingmsc":"140445","servinghlr":null,"originalnetworkname":"E-Plus","originalcountryname":"Germany","originalcountrycode":"DE","originalcountryprefix":"+49","originalnetworkprefix":"178","roamingnetworkname":"Fixed Line Operators and Other Networks","roamingcountryname":"United States","roamingcountrycode":"US","roamingcountryprefix":"+1","roamingnetworkprefix":"404455","portednetworkname":null,"portedcountryname":null,"portedcountrycode":null,"portedcountryprefix":null,"portednetworkprefix":null,"isvalid":"Yes","isroaming":"Yes","isported":"No","usercharge":"0.0100","inserttime":"2014-12-28 06:22:00.328844+08","storage":"SDK-TEST-SYNC-API","route":"IP1"}]}
|
26
|
+
def submit_sync_lookup_request(msisdn, route = nil, storage = nil)
|
27
|
+
|
28
|
+
params = {
|
29
|
+
:action => 'submitSyncLookupRequest',
|
30
|
+
:msisdn => msisdn,
|
31
|
+
:username => @username,
|
32
|
+
:password => @password
|
33
|
+
}
|
34
|
+
|
35
|
+
unless route.nil?
|
36
|
+
params.merge!(route: route)
|
37
|
+
end
|
38
|
+
|
39
|
+
unless storage.nil?
|
40
|
+
params.merge!(storage: storage)
|
41
|
+
end
|
42
|
+
|
43
|
+
send_request(params)
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
# Submits a synchronous number type lookup request. Results are presented in the response body.
|
48
|
+
# @param number - An number in international format, e.g. +4989702626
|
49
|
+
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
50
|
+
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
51
|
+
# @returns string (JSON)
|
52
|
+
#
|
53
|
+
# Return example: { "success":true, "results":[ { "id":"2ed0788379c6", "number":"+4989702626", "numbertype":"LANDLINE", "state":"COMPLETED", "isvalid":"Yes", "ispossiblyported":"No", "isvalidshortnumber":"No", "isvanitynumber":"No", "qualifiesforhlrlookup":"No", "originalcarrier":null, "mccmnc":null, "mcc":null, "mnc":null, "countrycode":"DE", "region":"Munich", "timezones":[ "Europe\/Berlin" ], "infotext":"This is a landline number.", "usercharge":"0.0050", "inserttime":"2015-12-04 10:36:41.866283+00", "storage":"SYNC-API-NT-2015-12", "route":"LC1" } ] }
|
54
|
+
def submit_sync_lookup_request(number, route = nil, storage = nil)
|
55
|
+
|
56
|
+
params = {
|
57
|
+
:action => 'submitSyncLookupRequest',
|
58
|
+
:number => number,
|
59
|
+
:username => @username,
|
60
|
+
:password => @password
|
61
|
+
}
|
62
|
+
|
63
|
+
unless route.nil?
|
64
|
+
params.merge!(route: route)
|
65
|
+
end
|
66
|
+
|
67
|
+
unless storage.nil?
|
68
|
+
params.merge!(storage: storage)
|
69
|
+
end
|
70
|
+
|
71
|
+
send_request(params)
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
# Submits asynchronous HLR Lookups containing up to 1,000 MSISDNs per request. Results are sent back asynchronously to a callback URL on your server.
|
76
|
+
# @param msisdns - A list of MSISDNs in international format, e.g. +491788735000,+491788735001
|
77
|
+
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
78
|
+
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
79
|
+
# @returns string (JSON)
|
80
|
+
#
|
81
|
+
# Return example: {"success":true,"messages":[],"results":{"acceptedMsisdns":[{"id":"e489a092eba7","msisdn":"+491788735000"},{"id":"23ad48bf0c26","msisdn":"+491788735001"}],"rejectedMsisdns":[],"acceptedMsisdnCount":2,"rejectedMsisdnCount":0,"totalCount":2,"charge":0.02,"storage":"SDK-TEST-ASYNC-API","route":"IP4"}}
|
82
|
+
def submit_async_lookup_request(msisdns, route = nil, storage = nil)
|
83
|
+
|
84
|
+
params = {
|
85
|
+
:action => 'submitAsyncLookupRequest',
|
86
|
+
:msisdns => msisdns_to_string(msisdns),
|
87
|
+
:username => @username,
|
88
|
+
:password => @password
|
89
|
+
}
|
90
|
+
|
91
|
+
unless route.nil?
|
92
|
+
params.merge!(route: route)
|
93
|
+
end
|
94
|
+
|
95
|
+
unless storage.nil?
|
96
|
+
params.merge!(storage: storage)
|
97
|
+
end
|
98
|
+
|
99
|
+
send_request(params)
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
# Submits asynchronous number type lookups containing up to 1,000 numbers per request. Results are sent back asynchronously to a callback URL on your server.
|
104
|
+
# @param numbers - A list of numbers in international format, e.g. +4989702626,+491788735000
|
105
|
+
# @param route - An optional route assignment, see: http://www.hlr-lookups.com/en/routing-options
|
106
|
+
# @param storage - An optional storage assignment, see: http://www.hlr-lookups.com/en/storages
|
107
|
+
# @returns string (JSON)
|
108
|
+
#
|
109
|
+
# Return example: { "success":true, "messages":[], "results":{ "acceptedNumbers":[ { "id":"f09b30014d5e", "number":"+4989702626" }, { "id":"364c0ad33c02", "number":"+491788735000" } ], "rejectedNumbers":[ { "id":null, "number":"asdf" } ], "acceptedNumberCount":2, "rejectedNumberCount":1, "totalCount":3, "charge":0.01, "storage":"ASYNC-API-NT-2015-12", "route":"LC1" } }
|
110
|
+
def submit_async_number_type_lookup_request(msisdns, route = nil, storage = nil)
|
111
|
+
|
112
|
+
params = {
|
113
|
+
:action => 'submitAsyncNumberTypeLookupRequest',
|
114
|
+
:msisdns => msisdns_to_string(numbers),
|
115
|
+
:username => @username,
|
116
|
+
:password => @password
|
117
|
+
}
|
118
|
+
|
119
|
+
unless route.nil?
|
120
|
+
params.merge!(route: route)
|
121
|
+
end
|
122
|
+
|
123
|
+
unless storage.nil?
|
124
|
+
params.merge!(storage: storage)
|
125
|
+
end
|
126
|
+
|
127
|
+
send_request(params)
|
128
|
+
|
129
|
+
end
|
130
|
+
|
131
|
+
# Sets the callback URL for asynchronous HLR lookups. Read more about the concept of asynchronous HLR lookups @ http://www.hlr-lookups.com/en/asynchronous-hlr-lookup-api
|
132
|
+
# @param url - callback url on your server
|
133
|
+
# @returns string (JSON)
|
134
|
+
#
|
135
|
+
# Return example: {"success":true,"messages":[],"results":{"url":"http:\/\/user:pass@www.your-server.com\/path\/file"}}
|
136
|
+
def set_async_callback_url(url)
|
137
|
+
|
138
|
+
send_request({
|
139
|
+
:action => 'setAsyncCallbackUrl',
|
140
|
+
:url => url,
|
141
|
+
:username => @username,
|
142
|
+
:password => @password
|
143
|
+
})
|
144
|
+
|
145
|
+
end
|
146
|
+
|
147
|
+
# Sets the callback URL for asynchronous number type lookups.
|
148
|
+
# @param url - callback url on your server
|
149
|
+
# @returns string (JSON)
|
150
|
+
#
|
151
|
+
# Return example: {"success":true,"messages":[],"results":{"url":"http:\/\/user:pass@www.your-server.com\/path\/file"}}
|
152
|
+
def set_nt_async_callback_url(url)
|
153
|
+
|
154
|
+
send_request({
|
155
|
+
:action => 'setNtAsyncCallbackUrl',
|
156
|
+
:url => url,
|
157
|
+
:username => @username,
|
158
|
+
:password => @password
|
159
|
+
})
|
160
|
+
|
161
|
+
end
|
162
|
+
|
163
|
+
# Returns the remaining balance (EUR) in your account.
|
164
|
+
# @returns string (JSON)
|
165
|
+
#
|
166
|
+
# Return example: {"success":true,"messages":[],"results":{"balance":"5878.24600"}}
|
167
|
+
def get_balance
|
168
|
+
|
169
|
+
send_request({
|
170
|
+
:action => 'getBalance',
|
171
|
+
:username => @username,
|
172
|
+
:password => @password
|
173
|
+
})
|
174
|
+
|
175
|
+
end
|
176
|
+
|
177
|
+
# Performs a health check on the system status, the user account and availability of each route.
|
178
|
+
# @returns string (JSON)
|
179
|
+
#
|
180
|
+
# Return example: { "success":true, "results":{ "system":{ "state":"up" }, "routes":{ "states":{ "IP1":"up", "ST2":"up", "SV3":"up", "IP4":"up", "XT5":"up", "XT6":"up", "NT7":"up", "LC1":"up" } }, "account":{ "lookupsPermitted":true, "balance":"295.23000" } } }
|
181
|
+
def do_health_check
|
182
|
+
|
183
|
+
send_request({
|
184
|
+
:action => 'doHealthCheck',
|
185
|
+
:username => @username,
|
186
|
+
:password => @password
|
187
|
+
})
|
188
|
+
|
189
|
+
end
|
190
|
+
|
191
|
+
private
|
192
|
+
def send_request(query)
|
193
|
+
|
194
|
+
begin
|
195
|
+
response = RestClient.get @url, :params => query
|
196
|
+
rescue => e
|
197
|
+
return generate_error_result("HTTP Status Code #{e.message}")
|
198
|
+
end
|
199
|
+
|
200
|
+
unless response.code == 200
|
201
|
+
return generate_error_result("HTTP Status Code #{response.code}")
|
202
|
+
end
|
203
|
+
|
204
|
+
response.to_str
|
205
|
+
|
206
|
+
end
|
207
|
+
|
208
|
+
private
|
209
|
+
def generate_error_result(message)
|
210
|
+
|
211
|
+
{:success => false, :fieldErrors => [], :globalErrors => ["#{message}"]}.to_json
|
212
|
+
|
213
|
+
end
|
214
|
+
|
215
|
+
def msisdns_to_string(msisdns)
|
216
|
+
|
217
|
+
string = ''
|
218
|
+
c = 0
|
219
|
+
msisdns.each { |msisdn|
|
220
|
+
|
221
|
+
if c > 0
|
222
|
+
string += ','
|
223
|
+
end
|
224
|
+
|
225
|
+
string += msisdn
|
226
|
+
|
227
|
+
c = c+1
|
228
|
+
|
229
|
+
}
|
230
|
+
|
231
|
+
string
|
232
|
+
|
233
|
+
end
|
234
|
+
|
235
|
+
end
|
236
|
+
|
237
|
+
end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module RubyHlrClient
|
2
|
-
VERSION = '0.0.
|
3
|
-
end
|
1
|
+
module RubyHlrClient
|
2
|
+
VERSION = '0.0.14'
|
3
|
+
end
|
data/ruby_hlr_client.gemspec
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path('../lib', __FILE__)
|
3
|
-
require 'ruby_hlr_client/version'
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = 'ruby_hlr_client'
|
7
|
-
s.version = RubyHlrClient::VERSION
|
8
|
-
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ['Velocity Made Good Ltd.']
|
10
|
-
s.email = ['service@hlr-lookups.com']
|
11
|
-
s.homepage = 'http://www.hlr-lookups.com'
|
12
|
-
s.summary = %q{Official HLR Lookup API Ruby SDK by www.hlr-lookups.com}
|
13
|
-
s.licenses = ['Apache-2.0']
|
14
|
-
|
15
|
-
|
16
|
-
s.add_dependency 'sinatra'
|
17
|
-
s.add_dependency 'rest_client'
|
18
|
-
s.add_dependency 'json'
|
19
|
-
|
20
|
-
s.rubyforge_project = 'ruby_hlr_client'
|
21
|
-
|
22
|
-
s.files = `git ls-files`.split("\n")
|
23
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
24
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
25
|
-
s.require_paths = ['lib']
|
26
|
-
end
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'ruby_hlr_client/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'ruby_hlr_client'
|
7
|
+
s.version = RubyHlrClient::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ['Velocity Made Good Ltd.']
|
10
|
+
s.email = ['service@hlr-lookups.com']
|
11
|
+
s.homepage = 'http://www.hlr-lookups.com'
|
12
|
+
s.summary = %q{Official HLR Lookup API Ruby SDK by www.hlr-lookups.com}
|
13
|
+
s.licenses = ['Apache-2.0']
|
14
|
+
|
15
|
+
|
16
|
+
s.add_dependency 'sinatra'
|
17
|
+
s.add_dependency 'rest_client'
|
18
|
+
s.add_dependency 'json'
|
19
|
+
|
20
|
+
s.rubyforge_project = 'ruby_hlr_client'
|
21
|
+
|
22
|
+
s.files = `git ls-files`.split("\n")
|
23
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
24
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
25
|
+
s.require_paths = ['lib']
|
26
|
+
end
|
metadata
CHANGED
@@ -1,66 +1,76 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_hlr_client
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 14
|
10
|
+
version: 0.0.14
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
12
|
+
authors:
|
7
13
|
- Velocity Made Good Ltd.
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
17
|
+
|
18
|
+
date: 2015-12-04 00:00:00 +00:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
14
22
|
name: sinatra
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ! '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
23
|
prerelease: false
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
- - ! '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
34
33
|
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rest_client
|
35
37
|
prerelease: false
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
- - ! '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
48
47
|
type: :runtime
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: json
|
49
51
|
prerelease: false
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :runtime
|
62
|
+
version_requirements: *id003
|
55
63
|
description:
|
56
|
-
email:
|
64
|
+
email:
|
57
65
|
- service@hlr-lookups.com
|
58
|
-
executables:
|
66
|
+
executables:
|
59
67
|
- test_callback_handler.rb
|
60
68
|
- test_client.rb
|
61
69
|
extensions: []
|
70
|
+
|
62
71
|
extra_rdoc_files: []
|
63
|
-
|
72
|
+
|
73
|
+
files:
|
64
74
|
- .gitignore
|
65
75
|
- Gemfile
|
66
76
|
- Rakefile
|
@@ -72,28 +82,39 @@ files:
|
|
72
82
|
- lib/ruby_hlr_client/hlr_client.rb
|
73
83
|
- lib/ruby_hlr_client/version.rb
|
74
84
|
- ruby_hlr_client.gemspec
|
85
|
+
has_rdoc: true
|
75
86
|
homepage: http://www.hlr-lookups.com
|
76
|
-
licenses:
|
87
|
+
licenses:
|
77
88
|
- Apache-2.0
|
78
|
-
metadata: {}
|
79
89
|
post_install_message:
|
80
90
|
rdoc_options: []
|
81
|
-
|
91
|
+
|
92
|
+
require_paths:
|
82
93
|
- lib
|
83
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
93
112
|
requirements: []
|
113
|
+
|
94
114
|
rubyforge_project: ruby_hlr_client
|
95
|
-
rubygems_version:
|
115
|
+
rubygems_version: 1.3.7
|
96
116
|
signing_key:
|
97
|
-
specification_version:
|
117
|
+
specification_version: 3
|
98
118
|
summary: Official HLR Lookup API Ruby SDK by www.hlr-lookups.com
|
99
119
|
test_files: []
|
120
|
+
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
YzUyM2U2YTFkNmQ2YWNmNDBmMzVhNWVjZWFhMjViYmE4MDUyMDIzYQ==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NmJmZGE2MzMyY2I1OTFhZjllMzU0ZmM3YzYxZTBlZGY0NmM0ZTFiOQ==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NDZlMmE5Y2IyYzkxN2IzOWVkZGQyYzE2ZTI5Njg1MWMzOGUwZWYyMmZlZTdl
|
10
|
-
NjMwM2EyZDk0N2RlMWQ0ZTE0NzQ5MzZhNjMyYzgxYzcwYzdiZjdjZmYyNmY1
|
11
|
-
MDgyNzEzZDJhMjlmODAxN2NhY2NmYWIzMGFhYWNkNGJlMGUzM2M=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZTBjNGM0NDFlOTU3ZWFmZDA2OGE1ZTQwMWJkZWNkODNkMDMxZDc2ZWJiNzVl
|
14
|
-
MGY5Y2IyMGI5OGE4YTMwOWMyYTEyNWUwMTU2NWVkODYyM2U2NDlmOTAwM2Jk
|
15
|
-
ZmRiODdlYjNiMWJjZDQ5NWMxZjYyYjk2M2I0YzY4ZGM1YzgxYTk=
|