maxmind-geoip2 1.4.0 → 1.5.1
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/CHANGELOG.md +12 -0
- data/README.md +1 -1
- data/lib/maxmind/geoip2/record/traits.rb +9 -1
- data/lib/maxmind/geoip2/version.rb +1 -1
- metadata +9 -91
- data/CLAUDE.md +0 -390
- data/Gemfile +0 -5
- data/Gemfile.lock +0 -126
- data/README.dev.md +0 -4
- data/Rakefile +0 -14
- data/maxmind-geoip2.gemspec +0 -41
- data/test/data/LICENSE-APACHE +0 -202
- data/test/data/LICENSE-MIT +0 -17
- data/test/data/MaxMind-DB-spec.md +0 -573
- data/test/data/README.md +0 -11
- data/test/data/bad-data/README.md +0 -7
- data/test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb +0 -0
- data/test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb +0 -0
- data/test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb +0 -1
- data/test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb +0 -0
- data/test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb +0 -0
- data/test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb +0 -1
- data/test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb +0 -1
- data/test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb +0 -0
- data/test/data/bad-data/maxminddb-python/bad-unicode-in-map-key.mmdb +0 -0
- data/test/data/cmd/write-test-data/main.go +0 -68
- data/test/data/go.mod +0 -13
- data/test/data/go.sum +0 -16
- data/test/data/pkg/writer/decoder.go +0 -178
- data/test/data/pkg/writer/geoip2.go +0 -184
- data/test/data/pkg/writer/ip.go +0 -39
- data/test/data/pkg/writer/maxmind.go +0 -246
- data/test/data/pkg/writer/nestedstructures.go +0 -73
- data/test/data/pkg/writer/writer.go +0 -61
- data/test/data/source-data/GeoIP-Anonymous-Plus-Test.json +0 -175
- data/test/data/source-data/GeoIP2-Anonymous-IP-Test.json +0 -55
- data/test/data/source-data/GeoIP2-City-Test.json +0 -13272
- data/test/data/source-data/GeoIP2-Connection-Type-Test.json +0 -127
- data/test/data/source-data/GeoIP2-Country-Test.json +0 -15978
- data/test/data/source-data/GeoIP2-DensityIncome-Test.json +0 -14
- data/test/data/source-data/GeoIP2-Domain-Test.json +0 -457
- data/test/data/source-data/GeoIP2-Enterprise-Test.json +0 -1110
- data/test/data/source-data/GeoIP2-IP-Risk-Test.json +0 -31
- data/test/data/source-data/GeoIP2-ISP-Test.json +0 -12605
- data/test/data/source-data/GeoIP2-Precision-Enterprise-Sandbox-Test.json +0 -296
- data/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json +0 -3189
- data/test/data/source-data/GeoIP2-Static-IP-Score-Test.json +0 -2147
- data/test/data/source-data/GeoIP2-User-Count-Test.json +0 -2855
- data/test/data/source-data/GeoLite2-ASN-Test.json +0 -4120
- data/test/data/source-data/GeoLite2-City-Test.json +0 -12969
- data/test/data/source-data/GeoLite2-Country-Test.json +0 -11369
- data/test/data/test-data/GeoIP-Anonymous-Plus-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb +0 -0
- data/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb +0 -0
- data/test/data/test-data/GeoIP2-City-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Country-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Domain-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Enterprise-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-IP-Risk-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-ISP-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-Static-IP-Score-Test.mmdb +0 -0
- data/test/data/test-data/GeoIP2-User-Count-Test.mmdb +0 -0
- data/test/data/test-data/GeoLite2-ASN-Test.mmdb +0 -0
- data/test/data/test-data/GeoLite2-City-Test.mmdb +0 -0
- data/test/data/test-data/GeoLite2-Country-Test.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-string-value-entries.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-decoder.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-nested.mmdb +0 -0
- data/test/data/test-data/MaxMind-DB-test-pointer-decoder.mmdb +0 -0
- data/test/data/test-data/README.md +0 -42
- data/test/data/test-data/maps-with-pointers.raw +0 -0
- data/test/data/tidyall.ini +0 -5
- data/test/test_client.rb +0 -467
- data/test/test_model_country.rb +0 -95
- data/test/test_model_names.rb +0 -50
- data/test/test_reader.rb +0 -589
data/test/test_model_country.rb
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'maxmind/geoip2'
|
|
4
|
-
require 'minitest/autorun'
|
|
5
|
-
|
|
6
|
-
class CountryModelTest < Minitest::Test
|
|
7
|
-
RAW = {
|
|
8
|
-
'continent' => {
|
|
9
|
-
'code' => 'NA',
|
|
10
|
-
'geoname_id' => 42,
|
|
11
|
-
'names' => { 'en' => 'North America' },
|
|
12
|
-
},
|
|
13
|
-
'country' => {
|
|
14
|
-
'geoname_id' => 1,
|
|
15
|
-
'iso_code' => 'US',
|
|
16
|
-
'names' => { 'en' => 'United States of America' },
|
|
17
|
-
},
|
|
18
|
-
'registered_country' => {
|
|
19
|
-
'geoname_id' => 2,
|
|
20
|
-
'is_in_european_union' => true,
|
|
21
|
-
'iso_code' => 'DE',
|
|
22
|
-
'names' => { 'en' => 'Germany' },
|
|
23
|
-
},
|
|
24
|
-
'traits' => {
|
|
25
|
-
'ip_address' => '1.2.3.4',
|
|
26
|
-
'prefix_length' => 24,
|
|
27
|
-
},
|
|
28
|
-
}.freeze
|
|
29
|
-
|
|
30
|
-
def test_objects
|
|
31
|
-
model = MaxMind::GeoIP2::Model::Country.new(RAW, ['en'])
|
|
32
|
-
|
|
33
|
-
assert_instance_of(MaxMind::GeoIP2::Model::Country, model)
|
|
34
|
-
assert_instance_of(MaxMind::GeoIP2::Record::Continent, model.continent)
|
|
35
|
-
assert_instance_of(MaxMind::GeoIP2::Record::Country, model.country)
|
|
36
|
-
assert_instance_of(
|
|
37
|
-
MaxMind::GeoIP2::Record::Country, model.registered_country,
|
|
38
|
-
)
|
|
39
|
-
assert_instance_of(
|
|
40
|
-
MaxMind::GeoIP2::Record::RepresentedCountry, model.represented_country,
|
|
41
|
-
)
|
|
42
|
-
assert_instance_of(
|
|
43
|
-
MaxMind::GeoIP2::Record::Traits, model.traits,
|
|
44
|
-
)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def test_values
|
|
48
|
-
model = MaxMind::GeoIP2::Model::Country.new(RAW, ['en'])
|
|
49
|
-
|
|
50
|
-
assert_equal(42, model.continent.geoname_id)
|
|
51
|
-
assert_equal('NA', model.continent.code)
|
|
52
|
-
assert_equal({ 'en' => 'North America' }, model.continent.names)
|
|
53
|
-
assert_equal('North America', model.continent.name)
|
|
54
|
-
|
|
55
|
-
assert_equal(1, model.country.geoname_id)
|
|
56
|
-
refute(model.country.in_european_union?)
|
|
57
|
-
assert_equal('US', model.country.iso_code)
|
|
58
|
-
assert_equal({ 'en' => 'United States of America' }, model.country.names)
|
|
59
|
-
assert_equal('United States of America', model.country.name)
|
|
60
|
-
assert_nil(model.country.confidence)
|
|
61
|
-
|
|
62
|
-
assert_equal(2, model.registered_country.geoname_id)
|
|
63
|
-
assert(model.registered_country.in_european_union?)
|
|
64
|
-
assert_equal('DE', model.registered_country.iso_code)
|
|
65
|
-
assert_equal({ 'en' => 'Germany' }, model.registered_country.names)
|
|
66
|
-
assert_equal('Germany', model.registered_country.name)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def test_unknown_record
|
|
70
|
-
model = MaxMind::GeoIP2::Model::Country.new(RAW, ['en'])
|
|
71
|
-
assert_raises(NoMethodError) { model.unknown_record }
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def test_unknown_trait
|
|
75
|
-
model = MaxMind::GeoIP2::Model::Country.new(RAW, ['en'])
|
|
76
|
-
assert_raises(NoMethodError) { model.traits.unknown }
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# This can happen if we're being created from a not fully populated response
|
|
80
|
-
# when used by minFraud. It shouldn't ever happen from GeoIP2 though.
|
|
81
|
-
def test_no_traits
|
|
82
|
-
model = MaxMind::GeoIP2::Model::Country.new(
|
|
83
|
-
{
|
|
84
|
-
'continent' => {
|
|
85
|
-
'code' => 'NA',
|
|
86
|
-
'geoname_id' => 42,
|
|
87
|
-
'names' => { 'en' => 'North America' },
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
['en'],
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
assert_equal(42, model.continent.geoname_id)
|
|
94
|
-
end
|
|
95
|
-
end
|
data/test/test_model_names.rb
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'maxmind/geoip2'
|
|
4
|
-
require 'minitest/autorun'
|
|
5
|
-
|
|
6
|
-
class ModelNameTest < Minitest::Test
|
|
7
|
-
RAW = {
|
|
8
|
-
'continent' => {
|
|
9
|
-
'code' => 'NA',
|
|
10
|
-
'geoname_id' => 42,
|
|
11
|
-
'names' => {
|
|
12
|
-
'en' => 'North America',
|
|
13
|
-
'zh-CN' => '北美洲',
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
'country' => {
|
|
17
|
-
'geoname_id' => 1,
|
|
18
|
-
'iso_code' => 'US',
|
|
19
|
-
'names' => {
|
|
20
|
-
'en' => 'United States of America',
|
|
21
|
-
'ru' => 'объединяет государства',
|
|
22
|
-
'zh-CN' => '美国',
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
'traits' => {
|
|
26
|
-
'ip_address' => '1.2.3.4',
|
|
27
|
-
},
|
|
28
|
-
}.freeze
|
|
29
|
-
|
|
30
|
-
def test_fallback
|
|
31
|
-
model = MaxMind::GeoIP2::Model::Country.new(RAW, %w[ru zh-CN en])
|
|
32
|
-
|
|
33
|
-
assert_equal('北美洲', model.continent.name)
|
|
34
|
-
assert_equal('объединяет государства', model.country.name)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def test_two_fallbacks
|
|
38
|
-
model = MaxMind::GeoIP2::Model::Country.new(RAW, %w[ru jp])
|
|
39
|
-
|
|
40
|
-
assert_nil(model.continent.name)
|
|
41
|
-
assert_equal('объединяет государства', model.country.name)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def test_no_fallbacks
|
|
45
|
-
model = MaxMind::GeoIP2::Model::Country.new(RAW, %w[jp])
|
|
46
|
-
|
|
47
|
-
assert_nil(model.continent.name)
|
|
48
|
-
assert_nil(model.country.name)
|
|
49
|
-
end
|
|
50
|
-
end
|