regeoip 0.0.5 → 0.0.6
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 +4 -4
- data/.circleci/config.yml +41 -0
- data/README.md +7 -4
- data/lib/GeoLite2-City.mmdb +0 -0
- data/lib/regeoip.rb +13 -13
- data/lib/regeoip/version.rb +1 -1
- data/regeoip.gemspec +1 -1
- metadata +8 -8
- data/lib/GeoIP.dat +0 -0
- data/lib/GeoIPv6.dat +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6bc6d306e1c1a792694ac124bd99e245b845b7b3
|
4
|
+
data.tar.gz: 8fec8b08376b3da6ebfb6eb5c2e48291458afce5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14a739b1bac7c2792a99a72cf5dfda28b23fd6ba5908fcb75653ed3918da317de517c0a444594d6ad4c5d282fe5532a7ed3b5bd133b9522af373bbbc5a415d23
|
7
|
+
data.tar.gz: b8defdc9d27f5903665b9b06a1dcf2e35a6a0e71b6bd139d2f7f7d8f07081585f8b59e0e3dc4e1de98e639585723cdfd857b4dca344dcfe506b77c1a6a09faeb
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Ruby CircleCI 2.0 configuration file
|
2
|
+
#
|
3
|
+
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
4
|
+
#
|
5
|
+
version: 2
|
6
|
+
jobs:
|
7
|
+
build:
|
8
|
+
docker:
|
9
|
+
# specify the version you desire here
|
10
|
+
- image: circleci/ruby:2.2.8
|
11
|
+
|
12
|
+
# Specify service dependencies here if necessary
|
13
|
+
# CircleCI maintains a library of pre-built images
|
14
|
+
# documented at https://circleci.com/docs/2.0/circleci-images/
|
15
|
+
# - image: circleci/postgres:9.4
|
16
|
+
|
17
|
+
working_directory: ~/repo
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- checkout
|
21
|
+
|
22
|
+
# Download and cache dependencies
|
23
|
+
- restore_cache:
|
24
|
+
keys:
|
25
|
+
- v1-dependencies-{{ checksum "Gemfile.lock" }}
|
26
|
+
# fallback to using the latest cache if no exact match is found
|
27
|
+
- v1-dependencies-
|
28
|
+
|
29
|
+
- run:
|
30
|
+
name: install dependencies
|
31
|
+
command: |
|
32
|
+
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
33
|
+
|
34
|
+
- save_cache:
|
35
|
+
paths:
|
36
|
+
- ./vendor/bundle
|
37
|
+
key: v1-dependencies-{{ checksum "Gemfile.lock" }}
|
38
|
+
|
39
|
+
- run:
|
40
|
+
name: run tests
|
41
|
+
command: bundle exec rspec spec/
|
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# Regeoip
|
2
2
|
|
3
|
-
Regeoip come with
|
4
|
-
either IPv4 or
|
3
|
+
Regeoip come with GeoLite2-City.mmdb so that it will resolve
|
4
|
+
either IPv4 or IPv6 to country and city without a need for a request.
|
5
5
|
|
6
|
-
All you need is: `Regeoip.
|
6
|
+
All you need is: `Regeoip.resolve(ip)`
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
@@ -23,13 +23,16 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
## Usage
|
25
25
|
|
26
|
+
Get all location data:
|
27
|
+
Regeoip.resolve(ip)
|
28
|
+
|
26
29
|
Get country data:
|
27
30
|
|
28
31
|
Regeoip.resolve_country(ip)
|
29
32
|
|
30
33
|
Get country code:
|
31
34
|
|
32
|
-
Regeoip.
|
35
|
+
Regeoip.resolve_country_code(ip)
|
33
36
|
|
34
37
|
## Development
|
35
38
|
|
Binary file
|
data/lib/regeoip.rb
CHANGED
@@ -1,32 +1,32 @@
|
|
1
1
|
require 'regeoip/version'
|
2
|
-
require '
|
2
|
+
require 'maxminddb'
|
3
3
|
|
4
4
|
module Regeoip
|
5
5
|
def self.resolve_country(ip)
|
6
|
-
|
7
|
-
|
8
|
-
geoipv4.country(ip)
|
6
|
+
if (geo_info = resolve(ip))
|
7
|
+
geo_info.country
|
9
8
|
else
|
10
|
-
|
9
|
+
nil
|
11
10
|
end
|
12
11
|
end
|
13
12
|
|
14
|
-
def self.
|
13
|
+
def self.resolve_country_code(ip)
|
15
14
|
if (country = resolve_country(ip))
|
16
|
-
country.
|
15
|
+
country.iso_code
|
17
16
|
else
|
18
17
|
nil
|
19
18
|
end
|
20
19
|
end
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
@geoipv4 ||= GeoIP.new(local_path('GeoIP.dat'))
|
21
|
+
def self.resolve(ip)
|
22
|
+
return nil if ip.nil?
|
23
|
+
max_mind_db.lookup(ip.to_s)
|
26
24
|
end
|
27
25
|
|
28
|
-
|
29
|
-
|
26
|
+
private
|
27
|
+
|
28
|
+
def self.max_mind_db
|
29
|
+
@max_mind_db ||= MaxMindDB.new(local_path('GeoLite2-City.mmdb'))
|
30
30
|
end
|
31
31
|
|
32
32
|
def self.local_path(file)
|
data/lib/regeoip/version.rb
CHANGED
data/regeoip.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "
|
21
|
+
spec.add_dependency "maxminddb", "~> 0.1.22"
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.12"
|
23
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
24
|
spec.add_development_dependency "rspec", "~> 3.0"
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: regeoip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phuong Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: maxminddb
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 0.1.22
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 0.1.22
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,6 +74,7 @@ executables:
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
+
- ".circleci/config.yml"
|
77
78
|
- ".gitignore"
|
78
79
|
- ".rspec"
|
79
80
|
- ".travis.yml"
|
@@ -81,8 +82,7 @@ files:
|
|
81
82
|
- README.md
|
82
83
|
- Rakefile
|
83
84
|
- bin/setup
|
84
|
-
- lib/
|
85
|
-
- lib/GeoIPv6.dat
|
85
|
+
- lib/GeoLite2-City.mmdb
|
86
86
|
- lib/regeoip.rb
|
87
87
|
- lib/regeoip/version.rb
|
88
88
|
- regeoip.gemspec
|
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
105
|
version: '0'
|
106
106
|
requirements: []
|
107
107
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
108
|
+
rubygems_version: 2.4.5.2
|
109
109
|
signing_key:
|
110
110
|
specification_version: 4
|
111
111
|
summary: Resolve ipv4 and ipv6 to country code without need for extra http request
|
data/lib/GeoIP.dat
DELETED
Binary file
|
data/lib/GeoIPv6.dat
DELETED
Binary file
|