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.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/maxmind/geoip2/record/traits.rb +9 -1
  5. data/lib/maxmind/geoip2/version.rb +1 -1
  6. metadata +9 -91
  7. data/CLAUDE.md +0 -390
  8. data/Gemfile +0 -5
  9. data/Gemfile.lock +0 -126
  10. data/README.dev.md +0 -4
  11. data/Rakefile +0 -14
  12. data/maxmind-geoip2.gemspec +0 -41
  13. data/test/data/LICENSE-APACHE +0 -202
  14. data/test/data/LICENSE-MIT +0 -17
  15. data/test/data/MaxMind-DB-spec.md +0 -573
  16. data/test/data/README.md +0 -11
  17. data/test/data/bad-data/README.md +0 -7
  18. data/test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb +0 -0
  19. data/test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb +0 -0
  20. data/test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb +0 -1
  21. data/test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb +0 -0
  22. data/test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb +0 -0
  23. data/test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb +0 -1
  24. data/test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb +0 -1
  25. data/test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb +0 -0
  26. data/test/data/bad-data/maxminddb-python/bad-unicode-in-map-key.mmdb +0 -0
  27. data/test/data/cmd/write-test-data/main.go +0 -68
  28. data/test/data/go.mod +0 -13
  29. data/test/data/go.sum +0 -16
  30. data/test/data/pkg/writer/decoder.go +0 -178
  31. data/test/data/pkg/writer/geoip2.go +0 -184
  32. data/test/data/pkg/writer/ip.go +0 -39
  33. data/test/data/pkg/writer/maxmind.go +0 -246
  34. data/test/data/pkg/writer/nestedstructures.go +0 -73
  35. data/test/data/pkg/writer/writer.go +0 -61
  36. data/test/data/source-data/GeoIP-Anonymous-Plus-Test.json +0 -175
  37. data/test/data/source-data/GeoIP2-Anonymous-IP-Test.json +0 -55
  38. data/test/data/source-data/GeoIP2-City-Test.json +0 -13272
  39. data/test/data/source-data/GeoIP2-Connection-Type-Test.json +0 -127
  40. data/test/data/source-data/GeoIP2-Country-Test.json +0 -15978
  41. data/test/data/source-data/GeoIP2-DensityIncome-Test.json +0 -14
  42. data/test/data/source-data/GeoIP2-Domain-Test.json +0 -457
  43. data/test/data/source-data/GeoIP2-Enterprise-Test.json +0 -1110
  44. data/test/data/source-data/GeoIP2-IP-Risk-Test.json +0 -31
  45. data/test/data/source-data/GeoIP2-ISP-Test.json +0 -12605
  46. data/test/data/source-data/GeoIP2-Precision-Enterprise-Sandbox-Test.json +0 -296
  47. data/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json +0 -3189
  48. data/test/data/source-data/GeoIP2-Static-IP-Score-Test.json +0 -2147
  49. data/test/data/source-data/GeoIP2-User-Count-Test.json +0 -2855
  50. data/test/data/source-data/GeoLite2-ASN-Test.json +0 -4120
  51. data/test/data/source-data/GeoLite2-City-Test.json +0 -12969
  52. data/test/data/source-data/GeoLite2-Country-Test.json +0 -11369
  53. data/test/data/test-data/GeoIP-Anonymous-Plus-Test.mmdb +0 -0
  54. data/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb +0 -0
  55. data/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb +0 -0
  56. data/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb +0 -0
  57. data/test/data/test-data/GeoIP2-City-Test.mmdb +0 -0
  58. data/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb +0 -0
  59. data/test/data/test-data/GeoIP2-Country-Test.mmdb +0 -0
  60. data/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb +0 -0
  61. data/test/data/test-data/GeoIP2-Domain-Test.mmdb +0 -0
  62. data/test/data/test-data/GeoIP2-Enterprise-Test.mmdb +0 -0
  63. data/test/data/test-data/GeoIP2-IP-Risk-Test.mmdb +0 -0
  64. data/test/data/test-data/GeoIP2-ISP-Test.mmdb +0 -0
  65. data/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb +0 -0
  66. data/test/data/test-data/GeoIP2-Static-IP-Score-Test.mmdb +0 -0
  67. data/test/data/test-data/GeoIP2-User-Count-Test.mmdb +0 -0
  68. data/test/data/test-data/GeoLite2-ASN-Test.mmdb +0 -0
  69. data/test/data/test-data/GeoLite2-City-Test.mmdb +0 -0
  70. data/test/data/test-data/GeoLite2-Country-Test.mmdb +0 -0
  71. data/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb +0 -0
  72. data/test/data/test-data/MaxMind-DB-string-value-entries.mmdb +0 -0
  73. data/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb +0 -0
  74. data/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb +0 -0
  75. data/test/data/test-data/MaxMind-DB-test-decoder.mmdb +0 -0
  76. data/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb +0 -0
  77. data/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb +0 -0
  78. data/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb +0 -0
  79. data/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb +0 -0
  80. data/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb +0 -0
  81. data/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb +0 -0
  82. data/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
  83. data/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb +0 -0
  84. data/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb +0 -0
  85. data/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb +0 -0
  86. data/test/data/test-data/MaxMind-DB-test-nested.mmdb +0 -0
  87. data/test/data/test-data/MaxMind-DB-test-pointer-decoder.mmdb +0 -0
  88. data/test/data/test-data/README.md +0 -42
  89. data/test/data/test-data/maps-with-pointers.raw +0 -0
  90. data/test/data/tidyall.ini +0 -5
  91. data/test/test_client.rb +0 -467
  92. data/test/test_model_country.rb +0 -95
  93. data/test/test_model_names.rb +0 -50
  94. data/test/test_reader.rb +0 -589
@@ -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
@@ -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