geoip2 0.0.2 → 0.0.3
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 +8 -8
- data/.travis.yml +14 -1
- data/Gemfile +1 -11
- data/README.md +2 -0
- data/geoip2.gemspec +6 -2
- data/lib/geoip2.rb +7 -2
- data/lib/geoip2/api/city.rb +2 -2
- data/lib/geoip2/api/city_isp_org.rb +2 -2
- data/lib/geoip2/api/country.rb +2 -2
- data/lib/geoip2/api/insights.rb +9 -0
- data/lib/geoip2/api/omni.rb +2 -2
- data/lib/geoip2/client.rb +23 -16
- data/lib/geoip2/version.rb +1 -1
- data/spec/api/country_spec.rb +21 -23
- data/spec/api/insights_spec.rb +40 -0
- data/spec/cassettes/get_country.yml +30 -1
- data/spec/cassettes/insights.yml +115 -0
- data/spec/helper.rb +1 -14
- data/spec/support/helper.rb +12 -0
- metadata +73 -11
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Nzc3MGQxNTg3MzM3OGM4MGI4MGUyOGE0M2M4NTIxNTViNmU4MTc4OA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZThlN2U5OWRmZWY2YzUyOGFmNDBkMjViODZmNmY2MWJjNTIxNTdmZg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YjIwNmNjNWI5ZjExNDdkYmM4Njk5OTYyY2IwYjUxZDYwZmQ2NzU1N2VlMDli
|
10
|
+
ZWU1MWQzMzk5OTg1YzU3N2MzNjEyZjk4N2U0MDhlNzA2YzU1Mzc3MmE0N2I2
|
11
|
+
MTdjMmFjMTFhMTE2MjA1YzQ1OGZkNGM2ZGQ2Y2Q3NzQ2ZjZlYTU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
M2U1Mjc4OTFlMjEwMmRjOTIwYzljZDQxYTYzNjMwNzdhN2U4M2FkYWE0ODY1
|
14
|
+
YjE5NWJmNDRjNDVkODU4NDgxNzJjYmUxYzY0N2MxYjgzODQ5MzZlN2ZjYzJk
|
15
|
+
NjgwNzRmMzNjZDRhOWY4NjJiNWU3MGZlMGUyOTg3M2Q1MGE3Yjc=
|
data/.travis.yml
CHANGED
@@ -1,10 +1,23 @@
|
|
1
1
|
language: ruby
|
2
|
+
sudo: false
|
3
|
+
cache: bundler
|
2
4
|
rvm:
|
3
5
|
- 1.9.3
|
4
6
|
- 2.0.0
|
5
|
-
-
|
7
|
+
- 2.1.1
|
8
|
+
- 2.1.3
|
9
|
+
- 2.2.0
|
6
10
|
- ruby-head
|
11
|
+
- rbx-2
|
7
12
|
env:
|
8
13
|
global:
|
9
14
|
- secure: G4j3gaAkyJvTK4spfRaraF8u8B9MwXwpmPGO0VyLJawJlX8xsjvBG3Xl4MrMTkSw3ieV/+B3S4eq/EGGe6lO8ZqxqrSKIDXlGinZK9Z9K9+umOdPUOsu9jx49i5IMrJX7g5/n63L/9rKgoefpSeyOF2KLrImseu10xLWs5MYv/s=
|
10
15
|
- secure: g3rD71ivDVfKya1NGGfUswZbk4kurHfyVLmZ3jAU1UEnkBF+rW8OGhhm34hIsKDTawEDTzkQao5Ek8YeQIvLT4WIsXWagbXPE/v4oq3ohDUoMndnrQywlG+msuNB9zIxCD1SAzeb88Lh4MGJPnod8cmtKVhmUjzhVKRL86QHRxE=
|
16
|
+
deploy:
|
17
|
+
provider: rubygems
|
18
|
+
api_key:
|
19
|
+
secure: OHCDhtvywzcjqhOqYEdNEvoPbW+D+shnPZlBq9jJi1Om69LEfGi4qBWPMUCDurKkguSi+GhwHNph2MU4Q9ucEYCUw4WmbTtGbnTmGPgetpiRExTh33h+FFHWCcsPfkUX53vwNf5wddA6WoHnopG3Y9geNEh4dqDVeACoLa6zOfk=
|
20
|
+
gem: geoip2
|
21
|
+
on:
|
22
|
+
branch: master
|
23
|
+
repo: YotpoLtd/geoip2
|
data/Gemfile
CHANGED
@@ -1,16 +1,6 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem 'rake'
|
4
3
|
gem 'yard'
|
5
4
|
gem 'redcarpet'
|
6
|
-
|
7
|
-
group :test do
|
8
|
-
gem 'coveralls', :require => false
|
9
|
-
gem 'rspec'
|
10
|
-
gem 'simplecov', :require => false
|
11
|
-
gem 'webmock'
|
12
|
-
gem 'vcr'
|
13
|
-
end
|
14
|
-
|
15
5
|
# Specify your gem's dependencies in yotpo-api-connector.gemspec
|
16
|
-
gemspec
|
6
|
+
gemspec
|
data/README.md
CHANGED
@@ -6,6 +6,8 @@ Integration with MaxMind GeoIP2 API
|
|
6
6
|
|
7
7
|
[](https://travis-ci.org/YotpoLtd/geoip2)
|
8
8
|
[](https://coveralls.io/r/YotpoLtd/geoip2)
|
9
|
+
[](https://gemnasium.com/YotpoLtd/geoip2)
|
10
|
+
[](https://codeclimate.com/github/YotpoLtd/geoip2)
|
9
11
|
|
10
12
|
## Installation
|
11
13
|
|
data/geoip2.gemspec
CHANGED
@@ -20,11 +20,15 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
22
|
spec.add_development_dependency 'rake'
|
23
|
-
spec.add_development_dependency '
|
23
|
+
spec.add_development_dependency 'coveralls', '~> 0.7.1'
|
24
|
+
spec.add_development_dependency 'rspec', '~> 3.0.0'
|
25
|
+
spec.add_development_dependency 'simplecov', '~> 0.9.0'
|
26
|
+
spec.add_development_dependency 'webmock', '~> 1.18.0'
|
27
|
+
spec.add_development_dependency 'vcr', '~> 2.9.2'
|
24
28
|
|
25
29
|
spec.add_dependency 'faraday'
|
26
30
|
spec.add_dependency 'typhoeus'
|
27
31
|
spec.add_dependency 'faraday_middleware'
|
28
|
-
spec.add_dependency 'rash'
|
29
32
|
spec.add_dependency 'activesupport'
|
33
|
+
spec.add_dependency 'hashie'
|
30
34
|
end
|
data/lib/geoip2.rb
CHANGED
@@ -46,7 +46,7 @@ module Geoip2
|
|
46
46
|
def client
|
47
47
|
@client ||= Geoip2::Client.new({
|
48
48
|
host: self.host || 'geoip.maxmind.com',
|
49
|
-
base_path: self.base_path || '/geoip/v2.
|
49
|
+
base_path: self.base_path || '/geoip/v2.1',
|
50
50
|
parallel_requests: self.parallel_requests || 5,
|
51
51
|
user_id: self.user_id,
|
52
52
|
license_key: self.license_key
|
@@ -54,15 +54,20 @@ module Geoip2
|
|
54
54
|
end
|
55
55
|
|
56
56
|
private
|
57
|
+
attr_reader :geoip_client
|
57
58
|
|
58
59
|
#
|
59
60
|
# executes any function on the Geoip2::Client instance
|
60
61
|
#
|
61
62
|
# @param args [*] any argument that we want to pass to the client function
|
62
63
|
# @param block [Block] any block that is passed to the client function
|
64
|
+
def reset_client
|
65
|
+
@client = nil
|
66
|
+
end
|
67
|
+
|
63
68
|
def method_missing(method_name, *args, &block)
|
64
69
|
return super unless client.respond_to?(method_name)
|
65
70
|
client.send(method_name, *args, &block)
|
66
71
|
end
|
67
72
|
end
|
68
|
-
end
|
73
|
+
end
|
data/lib/geoip2/api/city.rb
CHANGED
data/lib/geoip2/api/country.rb
CHANGED
data/lib/geoip2/api/omni.rb
CHANGED
data/lib/geoip2/client.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'geoip2/api/insights'
|
1
2
|
require 'geoip2/api/city'
|
2
3
|
require 'geoip2/api/city_isp_org'
|
3
4
|
require 'geoip2/api/country'
|
@@ -11,9 +12,10 @@ require 'faraday_middleware'
|
|
11
12
|
module Geoip2
|
12
13
|
class Client
|
13
14
|
|
14
|
-
include Geoip2::Api::City
|
15
|
-
include Geoip2::Api::Country
|
16
15
|
include Geoip2::Api::CityIspOrg
|
16
|
+
include Geoip2::Api::Insights
|
17
|
+
include Geoip2::Api::Country
|
18
|
+
include Geoip2::Api::City
|
17
19
|
include Geoip2::Api::Omni
|
18
20
|
|
19
21
|
#
|
@@ -33,10 +35,10 @@ module Geoip2
|
|
33
35
|
#
|
34
36
|
# @param url [String] the relative path in the Geoip2 API
|
35
37
|
# @param params [Hash] the url params that should be passed in the request
|
36
|
-
def get(url, params = {})
|
38
|
+
def get(url, params = {}, faraday_options = {})
|
37
39
|
params = params.inject({}){|memo,(k,v)| memo[k.to_s] = v; memo}
|
38
40
|
preform(@base_path + url, :get, params: params) do
|
39
|
-
return connection.get(@base_path + url, params).body
|
41
|
+
return connection(faraday_options).get(@base_path + url, params).body
|
40
42
|
end
|
41
43
|
end
|
42
44
|
|
@@ -70,23 +72,28 @@ module Geoip2
|
|
70
72
|
|
71
73
|
#
|
72
74
|
# @return an instance of Faraday initialized with all that this gem needs
|
73
|
-
def connection
|
74
|
-
|
75
|
+
def connection(faraday_options = {})
|
76
|
+
if @faraday_options != faraday_options
|
77
|
+
options = {url: @base_url, parallel_manager: Typhoeus::Hydra.new(max_concurrency: @parallel_requests)}.merge(faraday_options)
|
78
|
+
@faraday_options = faraday_options
|
79
|
+
@connection = Faraday.new(options) do |conn|
|
75
80
|
|
76
|
-
|
81
|
+
conn.request :basic_auth, @user, @password
|
77
82
|
|
78
|
-
|
79
|
-
|
83
|
+
# Set the response to be mashified
|
84
|
+
conn.response :mashify
|
80
85
|
|
81
|
-
|
82
|
-
|
83
|
-
|
86
|
+
# Setting request and response to use JSON/XML
|
87
|
+
conn.request :json
|
88
|
+
conn.response :json
|
84
89
|
|
85
|
-
|
86
|
-
|
90
|
+
# Set to use instrumentals to get time logs
|
91
|
+
conn.use :instrumentation
|
87
92
|
|
88
|
-
|
93
|
+
conn.adapter :typhoeus
|
94
|
+
end
|
89
95
|
end
|
96
|
+
@connection
|
90
97
|
end
|
91
98
|
end
|
92
|
-
end
|
99
|
+
end
|
data/lib/geoip2/version.rb
CHANGED
data/spec/api/country_spec.rb
CHANGED
@@ -1,38 +1,36 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
describe Geoip2::Api::Country do
|
4
|
-
describe '#country' do
|
5
|
-
|
4
|
+
describe '#country', version: "2.0" do
|
5
|
+
let!(:response) do
|
6
6
|
VCR.use_cassette('get_country') do
|
7
|
-
|
7
|
+
Geoip2.country('62.219.147.28')
|
8
8
|
end
|
9
9
|
end
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
it { should respond_to :maxmind }
|
16
|
-
it { should respond_to :traits }
|
17
|
-
|
18
|
-
it /have an iso_code in country/ do
|
19
|
-
expect(subject.country).to include :iso_code
|
20
|
-
expect(subject.country.iso_code).to eq 'IL'
|
10
|
+
|
11
|
+
[:country, :continent, :registered_country, :maxmind, :traits].each do |met|
|
12
|
+
it "response to #{met}" do
|
13
|
+
expect(response.respond_to?(met)).to eql(true)
|
14
|
+
end
|
21
15
|
end
|
22
16
|
|
23
|
-
it
|
24
|
-
expect(
|
25
|
-
expect(
|
17
|
+
it "have an iso_code in country" do
|
18
|
+
expect(response.country).to include :iso_code
|
19
|
+
expect(response.country.iso_code).to eq 'IL'
|
26
20
|
end
|
27
21
|
|
28
|
-
it
|
29
|
-
expect(
|
22
|
+
it "has a names array in country" do
|
23
|
+
expect(response.country).to include :names
|
24
|
+
expect(response.country.names).to be_a ::Hashie::Mash
|
30
25
|
end
|
31
26
|
|
32
|
-
it
|
33
|
-
expect(
|
34
|
-
expect(subject.maxmind.queries_remaining).to eq 995
|
27
|
+
it "has a 'en' name and it's value should be Israel" do
|
28
|
+
expect(response.country.names.en).to eq 'Israel'
|
35
29
|
end
|
36
30
|
|
31
|
+
it "has a queries_remaining value in maxmind" do
|
32
|
+
expect(response.maxmind).to include :queries_remaining
|
33
|
+
expect(response.maxmind.queries_remaining).to eq 995
|
34
|
+
end
|
37
35
|
end
|
38
|
-
end
|
36
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'helper'
|
2
|
+
describe Geoip2::Api::Insights, version: "2.1" do
|
3
|
+
describe '#insights'do
|
4
|
+
let!(:response) do
|
5
|
+
VCR.use_cassette('insights') do
|
6
|
+
Geoip2.insights('0.0.0.0')
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
[:country, :continent, :registered_country, :maxmind, :traits].each do |met|
|
11
|
+
it "response to #{met}" do
|
12
|
+
expect(response.respond_to?(met)).to eql(true)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
it "response is Rash" do
|
17
|
+
expect(response).to be_a_kind_of(::Hashie::Mash)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "have an iso_code in country" do
|
21
|
+
expect(response.country).to include :iso_code
|
22
|
+
expect(response.country.iso_code).to eq 'LV'
|
23
|
+
end
|
24
|
+
|
25
|
+
it "has a names array in country" do
|
26
|
+
expect(response.country).to include :names
|
27
|
+
expect(response.country.names).to be_a ::Hashie::Mash
|
28
|
+
end
|
29
|
+
|
30
|
+
it "has a 'en' name and it's value should be Israel" do
|
31
|
+
expect(response.country.names.en).to eq 'Latvia'
|
32
|
+
end
|
33
|
+
|
34
|
+
it "has a queries_remaining value in maxmind" do
|
35
|
+
expect(response.maxmind).to include :queries_remaining
|
36
|
+
expect(response.maxmind.queries_remaining).to eq 149995
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -44,4 +44,33 @@ http_interactions:
|
|
44
44
|
ImlwX2FkZHJlc3MiOiI2Mi4yMTkuMTQ3LjI4In19
|
45
45
|
http_version:
|
46
46
|
recorded_at: Thu, 24 Oct 2013 06:56:47 GMT
|
47
|
-
|
47
|
+
- request:
|
48
|
+
method: get
|
49
|
+
uri: https://geoip.maxmind.com/geoip/v2.1/country/62.219.147.28
|
50
|
+
body:
|
51
|
+
encoding: US-ASCII
|
52
|
+
string: ''
|
53
|
+
headers:
|
54
|
+
User-Agent:
|
55
|
+
- Faraday v0.9.0
|
56
|
+
Authorization:
|
57
|
+
- Basic Og==
|
58
|
+
response:
|
59
|
+
status:
|
60
|
+
code: 401
|
61
|
+
message: Unauthorized
|
62
|
+
headers:
|
63
|
+
Www-Authenticate:
|
64
|
+
- Basic realm="geoip2"
|
65
|
+
Content-Length:
|
66
|
+
- '96'
|
67
|
+
Content-Type:
|
68
|
+
- application/vnd.maxmind.com-error+json; charset=UTF-8; version=2.1
|
69
|
+
Date:
|
70
|
+
- Fri, 22 Aug 2014 14:11:19 GMT
|
71
|
+
body:
|
72
|
+
encoding: UTF-8
|
73
|
+
string: '{"error":"A user ID and license key are required to use this service","code":"USER_ID_REQUIRED"}'
|
74
|
+
http_version:
|
75
|
+
recorded_at: Fri, 22 Aug 2014 14:11:19 GMT
|
76
|
+
recorded_with: VCR 2.9.2
|
@@ -0,0 +1,115 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://geoip.maxmind.com/geoip/v2.1/insights/0.0.0.0
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.9.0
|
12
|
+
Authorization:
|
13
|
+
- Basic OTIxMDk6V2FPZk1ScGc5RlU0
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Vary:
|
20
|
+
- Accept
|
21
|
+
Content-Length:
|
22
|
+
- '1266'
|
23
|
+
Content-Type:
|
24
|
+
- application/vnd.maxmind.com-insights+json; charset=UTF-8; version=2.1
|
25
|
+
Date:
|
26
|
+
- Fri, 15 Aug 2014 10:56:59 GMT
|
27
|
+
body:
|
28
|
+
encoding: ASCII-8BIT
|
29
|
+
string: !binary |-
|
30
|
+
eyJjb3VudHJ5Ijp7Imlzb19jb2RlIjoiTFYiLCJuYW1lcyI6eyJwdC1CUiI6
|
31
|
+
IkxldMO0bmlhIiwiZXMiOiJMZXRvbmlhIiwicnUiOiLQm9Cw0YLQstC40Y8i
|
32
|
+
LCJlbiI6IkxhdHZpYSIsInpoLUNOIjoi5ouJ6ISx57u05LqaIiwiZnIiOiJM
|
33
|
+
ZXR0b25pZSIsImRlIjoiTGV0dGxhbmQiLCJqYSI6IuODqeODiOODk+OCouWF
|
34
|
+
seWSjOWbvSJ9LCJjb25maWRlbmNlIjo5NiwiZ2VvbmFtZV9pZCI6NDU4MjU4
|
35
|
+
fSwibG9jYXRpb24iOnsibG9uZ2l0dWRlIjoyNC4xLCJsYXRpdHVkZSI6NTYu
|
36
|
+
OTUsInRpbWVfem9uZSI6IkV1cm9wZS9SaWdhIiwiYWNjdXJhY3lfcmFkaXVz
|
37
|
+
IjozfSwic3ViZGl2aXNpb25zIjpbeyJpc29fY29kZSI6IlJJWCIsIm5hbWVz
|
38
|
+
Ijp7ImVuIjoiUmlnYSIsInJ1Ijoi0KDQuNCz0LAifSwiY29uZmlkZW5jZSI6
|
39
|
+
NzQsImdlb25hbWVfaWQiOjQ1NjE3M31dLCJjaXR5Ijp7Im5hbWVzIjp7InB0
|
40
|
+
LUJSIjoiUmlnYSIsImVzIjoiUmlnYSIsInJ1Ijoi0KDQuNCz0LAiLCJlbiI6
|
41
|
+
IlJpZ2EiLCJ6aC1DTiI6IumHjOWKoCIsImZyIjoiUmlnYSIsImRlIjoiUmln
|
42
|
+
YSIsImphIjoi44Oq44KsIn0sImNvbmZpZGVuY2UiOjc0LCJnZW9uYW1lX2lk
|
43
|
+
Ijo0NTYxNzJ9LCJjb250aW5lbnQiOnsibmFtZXMiOnsicHQtQlIiOiJFdXJv
|
44
|
+
cGEiLCJlcyI6IkV1cm9wYSIsInJ1Ijoi0JXQstGA0L7Qv9CwIiwiZW4iOiJF
|
45
|
+
dXJvcGUiLCJ6aC1DTiI6Iuasp+a0siIsImZyIjoiRXVyb3BlIiwiZGUiOiJF
|
46
|
+
dXJvcGEiLCJqYSI6IuODqOODvOODreODg+ODkSJ9LCJnZW9uYW1lX2lkIjo2
|
47
|
+
MjU1MTQ4LCJjb2RlIjoiRVUifSwibWF4bWluZCI6eyJxdWVyaWVzX3JlbWFp
|
48
|
+
bmluZyI6MTQ5OTk1fSwicmVnaXN0ZXJlZF9jb3VudHJ5Ijp7Imlzb19jb2Rl
|
49
|
+
IjoiTFYiLCJuYW1lcyI6eyJwdC1CUiI6IkxldMO0bmlhIiwiZXMiOiJMZXRv
|
50
|
+
bmlhIiwicnUiOiLQm9Cw0YLQstC40Y8iLCJlbiI6IkxhdHZpYSIsInpoLUNO
|
51
|
+
Ijoi5ouJ6ISx57u05LqaIiwiZnIiOiJMZXR0b25pZSIsImRlIjoiTGV0dGxh
|
52
|
+
bmQiLCJqYSI6IuODqeODiOODk+OCouWFseWSjOWbvSJ9LCJnZW9uYW1lX2lk
|
53
|
+
Ijo0NTgyNTh9LCJ0cmFpdHMiOnsidXNlcl90eXBlIjoicmVzaWRlbnRpYWwi
|
54
|
+
LCJkb21haW4iOiJiYWx0aWNvbS5sdiIsImF1dG9ub21vdXNfc3lzdGVtX251
|
55
|
+
bWJlciI6MjQ2NTEsImlwX2FkZHJlc3MiOiI4My45OS4xNTkuMTkzIiwib3Jn
|
56
|
+
YW5pemF0aW9uIjoiQmFsdGljb20gSlNDIiwiaXNwIjoiSnNjIEJhbHRpY29t
|
57
|
+
IiwiYXV0b25vbW91c19zeXN0ZW1fb3JnYW5pemF0aW9uIjoiSlNDIEJBTFRJ
|
58
|
+
Q09NIn19
|
59
|
+
http_version:
|
60
|
+
recorded_at: Fri, 15 Aug 2014 10:56:59 GMT
|
61
|
+
- request:
|
62
|
+
method: get
|
63
|
+
uri: https://geoip.maxmind.com/geoip/v2.0/insights/0.0.0.0
|
64
|
+
body:
|
65
|
+
encoding: US-ASCII
|
66
|
+
string: ''
|
67
|
+
headers:
|
68
|
+
User-Agent:
|
69
|
+
- Faraday v0.9.0
|
70
|
+
Authorization:
|
71
|
+
- Basic Og==
|
72
|
+
response:
|
73
|
+
status:
|
74
|
+
code: 404
|
75
|
+
message: Not Found
|
76
|
+
headers:
|
77
|
+
Content-Type:
|
78
|
+
- text/plain
|
79
|
+
Transfer-Encoding:
|
80
|
+
- chunked
|
81
|
+
Date:
|
82
|
+
- Fri, 22 Aug 2014 13:56:43 GMT
|
83
|
+
body:
|
84
|
+
encoding: UTF-8
|
85
|
+
string: Not Found
|
86
|
+
http_version:
|
87
|
+
recorded_at: Fri, 22 Aug 2014 13:56:43 GMT
|
88
|
+
- request:
|
89
|
+
method: get
|
90
|
+
uri: https://geoip.maxmind.com/geoip/v2.0/insights/0.0.0.0
|
91
|
+
body:
|
92
|
+
encoding: US-ASCII
|
93
|
+
string: ''
|
94
|
+
headers:
|
95
|
+
User-Agent:
|
96
|
+
- Faraday v0.9.0
|
97
|
+
Authorization:
|
98
|
+
- Basic Og==
|
99
|
+
response:
|
100
|
+
status:
|
101
|
+
code: 404
|
102
|
+
message: Not Found
|
103
|
+
headers:
|
104
|
+
Content-Type:
|
105
|
+
- text/plain
|
106
|
+
Transfer-Encoding:
|
107
|
+
- chunked
|
108
|
+
Date:
|
109
|
+
- Fri, 22 Aug 2014 14:02:25 GMT
|
110
|
+
body:
|
111
|
+
encoding: UTF-8
|
112
|
+
string: Not Found
|
113
|
+
http_version:
|
114
|
+
recorded_at: Fri, 22 Aug 2014 14:02:25 GMT
|
115
|
+
recorded_with: VCR 2.9.2
|
data/spec/helper.rb
CHANGED
@@ -5,7 +5,7 @@ require 'webmock/rspec'
|
|
5
5
|
require 'geoip2'
|
6
6
|
require 'vcr'
|
7
7
|
|
8
|
-
|
8
|
+
Dir["./spec/support/**/*.rb"].sort.each { |f| require f}
|
9
9
|
|
10
10
|
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
11
11
|
SimpleCov::Formatter::HTMLFormatter,
|
@@ -19,17 +19,4 @@ VCR.configure do |c|
|
|
19
19
|
c.ignore_hosts 'coveralls.io'
|
20
20
|
c.cassette_library_dir = 'spec/cassettes'
|
21
21
|
c.default_cassette_options = { :record => :new_episodes }
|
22
|
-
end
|
23
|
-
|
24
|
-
RSpec.configure do |config|
|
25
|
-
config.expect_with :rspec do |c|
|
26
|
-
c.syntax = :expect
|
27
|
-
end
|
28
|
-
|
29
|
-
config.before(:all) do
|
30
|
-
Geoip2.configure do |conf|
|
31
|
-
conf.license_key = ENV['LICENSE_KEY']
|
32
|
-
conf.user_id = ENV['USER_ID']
|
33
|
-
end
|
34
|
-
end
|
35
22
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
RSpec.configure do |config|
|
2
|
+
config.before do |example|
|
3
|
+
Geoip2.configure do |conf|
|
4
|
+
Geoip2.send(:reset_client)
|
5
|
+
conf.license_key = ENV['LICENSE_KEY']
|
6
|
+
if example.metadata[:version]
|
7
|
+
conf.base_path = "/geoip/v#{example.metadata[:version]}"
|
8
|
+
end
|
9
|
+
conf.user_id = ENV['USER_ID']
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geoip2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladislav Shub
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,19 +39,75 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: coveralls
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.7.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.7.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.0.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.0.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.9.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.9.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.18.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.18.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: vcr
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.9.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.9.2
|
55
111
|
- !ruby/object:Gem::Dependency
|
56
112
|
name: faraday
|
57
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,7 +151,7 @@ dependencies:
|
|
95
151
|
- !ruby/object:Gem::Version
|
96
152
|
version: '0'
|
97
153
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
154
|
+
name: activesupport
|
99
155
|
requirement: !ruby/object:Gem::Requirement
|
100
156
|
requirements:
|
101
157
|
- - ! '>='
|
@@ -109,7 +165,7 @@ dependencies:
|
|
109
165
|
- !ruby/object:Gem::Version
|
110
166
|
version: '0'
|
111
167
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
168
|
+
name: hashie
|
113
169
|
requirement: !ruby/object:Gem::Requirement
|
114
170
|
requirements:
|
115
171
|
- - ! '>='
|
@@ -142,13 +198,17 @@ files:
|
|
142
198
|
- lib/geoip2/api/city.rb
|
143
199
|
- lib/geoip2/api/city_isp_org.rb
|
144
200
|
- lib/geoip2/api/country.rb
|
201
|
+
- lib/geoip2/api/insights.rb
|
145
202
|
- lib/geoip2/api/omni.rb
|
146
203
|
- lib/geoip2/client.rb
|
147
204
|
- lib/geoip2/version.rb
|
148
205
|
- spec/api/country_spec.rb
|
206
|
+
- spec/api/insights_spec.rb
|
149
207
|
- spec/cassettes/get_country.yml
|
208
|
+
- spec/cassettes/insights.yml
|
150
209
|
- spec/geoip2_spec.rb
|
151
210
|
- spec/helper.rb
|
211
|
+
- spec/support/helper.rb
|
152
212
|
homepage: https://github.com/YotpoLtd/geoip2
|
153
213
|
licenses:
|
154
214
|
- GPLv2
|
@@ -169,13 +229,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
229
|
version: '0'
|
170
230
|
requirements: []
|
171
231
|
rubyforge_project:
|
172
|
-
rubygems_version: 2.
|
232
|
+
rubygems_version: 2.4.5
|
173
233
|
signing_key:
|
174
234
|
specification_version: 4
|
175
235
|
summary: Integration with MaxMind GeoIP2 API
|
176
236
|
test_files:
|
177
237
|
- spec/api/country_spec.rb
|
238
|
+
- spec/api/insights_spec.rb
|
178
239
|
- spec/cassettes/get_country.yml
|
240
|
+
- spec/cassettes/insights.yml
|
179
241
|
- spec/geoip2_spec.rb
|
180
242
|
- spec/helper.rb
|
181
|
-
|
243
|
+
- spec/support/helper.rb
|