maxmind-geoip2 0.1.0

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 (97) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +12 -0
  3. data/Gemfile +9 -0
  4. data/Gemfile.lock +38 -0
  5. data/LICENSE-APACHE +202 -0
  6. data/LICENSE-MIT +17 -0
  7. data/README.dev.md +4 -0
  8. data/README.md +274 -0
  9. data/Rakefile +14 -0
  10. data/lib/maxmind/geoip2.rb +3 -0
  11. data/lib/maxmind/geoip2/errors.rb +7 -0
  12. data/lib/maxmind/geoip2/model/abstract.rb +27 -0
  13. data/lib/maxmind/geoip2/model/anonymous_ip.rb +63 -0
  14. data/lib/maxmind/geoip2/model/asn.rb +39 -0
  15. data/lib/maxmind/geoip2/model/city.rb +75 -0
  16. data/lib/maxmind/geoip2/model/connection_type.rb +32 -0
  17. data/lib/maxmind/geoip2/model/country.rb +63 -0
  18. data/lib/maxmind/geoip2/model/domain.rb +32 -0
  19. data/lib/maxmind/geoip2/model/enterprise.rb +15 -0
  20. data/lib/maxmind/geoip2/model/isp.rb +53 -0
  21. data/lib/maxmind/geoip2/reader.rb +277 -0
  22. data/lib/maxmind/geoip2/record/abstract.rb +22 -0
  23. data/lib/maxmind/geoip2/record/city.rb +38 -0
  24. data/lib/maxmind/geoip2/record/continent.rb +37 -0
  25. data/lib/maxmind/geoip2/record/country.rb +54 -0
  26. data/lib/maxmind/geoip2/record/location.rb +73 -0
  27. data/lib/maxmind/geoip2/record/place.rb +28 -0
  28. data/lib/maxmind/geoip2/record/postal.rb +30 -0
  29. data/lib/maxmind/geoip2/record/represented_country.rb +23 -0
  30. data/lib/maxmind/geoip2/record/subdivision.rb +48 -0
  31. data/lib/maxmind/geoip2/record/traits.rb +200 -0
  32. data/maxmind-geoip2.gemspec +24 -0
  33. data/test/data/LICENSE +4 -0
  34. data/test/data/MaxMind-DB-spec.md +570 -0
  35. data/test/data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
  36. data/test/data/README.md +4 -0
  37. data/test/data/bad-data/README.md +7 -0
  38. data/test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb +0 -0
  39. data/test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb +0 -0
  40. data/test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb +1 -0
  41. data/test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb +0 -0
  42. data/test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb +0 -0
  43. data/test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb +1 -0
  44. data/test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb +1 -0
  45. data/test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb +0 -0
  46. data/test/data/perltidyrc +12 -0
  47. data/test/data/source-data/GeoIP2-Anonymous-IP-Test.json +48 -0
  48. data/test/data/source-data/GeoIP2-City-Test.json +12852 -0
  49. data/test/data/source-data/GeoIP2-Connection-Type-Test.json +102 -0
  50. data/test/data/source-data/GeoIP2-Country-Test.json +15916 -0
  51. data/test/data/source-data/GeoIP2-DensityIncome-Test.json +14 -0
  52. data/test/data/source-data/GeoIP2-Domain-Test.json +452 -0
  53. data/test/data/source-data/GeoIP2-Enterprise-Test.json +687 -0
  54. data/test/data/source-data/GeoIP2-ISP-Test.json +12593 -0
  55. data/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json +2061 -0
  56. data/test/data/source-data/GeoIP2-Static-IP-Score-Test.json +2132 -0
  57. data/test/data/source-data/GeoIP2-User-Count-Test.json +2837 -0
  58. data/test/data/source-data/GeoLite2-ASN-Test.json +37 -0
  59. data/test/data/source-data/README +15 -0
  60. data/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb +0 -0
  61. data/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb +0 -0
  62. data/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb +0 -0
  63. data/test/data/test-data/GeoIP2-City-Test.mmdb +0 -0
  64. data/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb +0 -0
  65. data/test/data/test-data/GeoIP2-Country-Test.mmdb +0 -0
  66. data/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb +0 -0
  67. data/test/data/test-data/GeoIP2-Domain-Test.mmdb +0 -0
  68. data/test/data/test-data/GeoIP2-Enterprise-Test.mmdb +0 -0
  69. data/test/data/test-data/GeoIP2-ISP-Test.mmdb +0 -0
  70. data/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb +0 -0
  71. data/test/data/test-data/GeoIP2-Static-IP-Score-Test.mmdb +0 -0
  72. data/test/data/test-data/GeoIP2-User-Count-Test.mmdb +0 -0
  73. data/test/data/test-data/GeoLite2-ASN-Test.mmdb +0 -0
  74. data/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb +0 -0
  75. data/test/data/test-data/MaxMind-DB-string-value-entries.mmdb +0 -0
  76. data/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb +0 -0
  77. data/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb +0 -0
  78. data/test/data/test-data/MaxMind-DB-test-decoder.mmdb +0 -0
  79. data/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb +0 -0
  80. data/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb +0 -0
  81. data/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb +0 -0
  82. data/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb +0 -0
  83. data/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb +0 -0
  84. data/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb +0 -0
  85. data/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
  86. data/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb +0 -0
  87. data/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb +0 -0
  88. data/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb +0 -0
  89. data/test/data/test-data/MaxMind-DB-test-nested.mmdb +0 -0
  90. data/test/data/test-data/README.md +26 -0
  91. data/test/data/test-data/maps-with-pointers.raw +0 -0
  92. data/test/data/test-data/write-test-data.pl +641 -0
  93. data/test/data/tidyall.ini +5 -0
  94. data/test/test_model_country.rb +80 -0
  95. data/test/test_model_names.rb +47 -0
  96. data/test/test_reader.rb +459 -0
  97. metadata +159 -0
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: maxmind-geoip2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - William Storey
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-02-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: maxmind-db
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
27
+ description: A gem for interacting with the GeoIP2 webservices and databases. MaxMind
28
+ provides geolocation data as downloadable databases as well as through a webservice.
29
+ email: support@maxmind.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - CHANGELOG.md
35
+ - Gemfile
36
+ - Gemfile.lock
37
+ - LICENSE-APACHE
38
+ - LICENSE-MIT
39
+ - README.dev.md
40
+ - README.md
41
+ - Rakefile
42
+ - lib/maxmind/geoip2.rb
43
+ - lib/maxmind/geoip2/errors.rb
44
+ - lib/maxmind/geoip2/model/abstract.rb
45
+ - lib/maxmind/geoip2/model/anonymous_ip.rb
46
+ - lib/maxmind/geoip2/model/asn.rb
47
+ - lib/maxmind/geoip2/model/city.rb
48
+ - lib/maxmind/geoip2/model/connection_type.rb
49
+ - lib/maxmind/geoip2/model/country.rb
50
+ - lib/maxmind/geoip2/model/domain.rb
51
+ - lib/maxmind/geoip2/model/enterprise.rb
52
+ - lib/maxmind/geoip2/model/isp.rb
53
+ - lib/maxmind/geoip2/reader.rb
54
+ - lib/maxmind/geoip2/record/abstract.rb
55
+ - lib/maxmind/geoip2/record/city.rb
56
+ - lib/maxmind/geoip2/record/continent.rb
57
+ - lib/maxmind/geoip2/record/country.rb
58
+ - lib/maxmind/geoip2/record/location.rb
59
+ - lib/maxmind/geoip2/record/place.rb
60
+ - lib/maxmind/geoip2/record/postal.rb
61
+ - lib/maxmind/geoip2/record/represented_country.rb
62
+ - lib/maxmind/geoip2/record/subdivision.rb
63
+ - lib/maxmind/geoip2/record/traits.rb
64
+ - maxmind-geoip2.gemspec
65
+ - test/data/LICENSE
66
+ - test/data/MaxMind-DB-spec.md
67
+ - test/data/MaxMind-DB-test-metadata-pointers.mmdb
68
+ - test/data/README.md
69
+ - test/data/bad-data/README.md
70
+ - test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb
71
+ - test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb
72
+ - test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb
73
+ - test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb
74
+ - test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb
75
+ - test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb
76
+ - test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb
77
+ - test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb
78
+ - test/data/perltidyrc
79
+ - test/data/source-data/GeoIP2-Anonymous-IP-Test.json
80
+ - test/data/source-data/GeoIP2-City-Test.json
81
+ - test/data/source-data/GeoIP2-Connection-Type-Test.json
82
+ - test/data/source-data/GeoIP2-Country-Test.json
83
+ - test/data/source-data/GeoIP2-DensityIncome-Test.json
84
+ - test/data/source-data/GeoIP2-Domain-Test.json
85
+ - test/data/source-data/GeoIP2-Enterprise-Test.json
86
+ - test/data/source-data/GeoIP2-ISP-Test.json
87
+ - test/data/source-data/GeoIP2-Precision-Enterprise-Test.json
88
+ - test/data/source-data/GeoIP2-Static-IP-Score-Test.json
89
+ - test/data/source-data/GeoIP2-User-Count-Test.json
90
+ - test/data/source-data/GeoLite2-ASN-Test.json
91
+ - test/data/source-data/README
92
+ - test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb
93
+ - test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb
94
+ - test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb
95
+ - test/data/test-data/GeoIP2-City-Test.mmdb
96
+ - test/data/test-data/GeoIP2-Connection-Type-Test.mmdb
97
+ - test/data/test-data/GeoIP2-Country-Test.mmdb
98
+ - test/data/test-data/GeoIP2-DensityIncome-Test.mmdb
99
+ - test/data/test-data/GeoIP2-Domain-Test.mmdb
100
+ - test/data/test-data/GeoIP2-Enterprise-Test.mmdb
101
+ - test/data/test-data/GeoIP2-ISP-Test.mmdb
102
+ - test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb
103
+ - test/data/test-data/GeoIP2-Static-IP-Score-Test.mmdb
104
+ - test/data/test-data/GeoIP2-User-Count-Test.mmdb
105
+ - test/data/test-data/GeoLite2-ASN-Test.mmdb
106
+ - test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb
107
+ - test/data/test-data/MaxMind-DB-string-value-entries.mmdb
108
+ - test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb
109
+ - test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb
110
+ - test/data/test-data/MaxMind-DB-test-decoder.mmdb
111
+ - test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb
112
+ - test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb
113
+ - test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb
114
+ - test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb
115
+ - test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb
116
+ - test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb
117
+ - test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb
118
+ - test/data/test-data/MaxMind-DB-test-mixed-24.mmdb
119
+ - test/data/test-data/MaxMind-DB-test-mixed-28.mmdb
120
+ - test/data/test-data/MaxMind-DB-test-mixed-32.mmdb
121
+ - test/data/test-data/MaxMind-DB-test-nested.mmdb
122
+ - test/data/test-data/README.md
123
+ - test/data/test-data/maps-with-pointers.raw
124
+ - test/data/test-data/write-test-data.pl
125
+ - test/data/tidyall.ini
126
+ - test/test_model_country.rb
127
+ - test/test_model_names.rb
128
+ - test/test_reader.rb
129
+ homepage: https://github.com/maxmind/GeoIP2-ruby
130
+ licenses:
131
+ - Apache-2.0
132
+ - MIT
133
+ metadata:
134
+ bug_tracker_uri: https://github.com/maxmind/GeoIP2-ruby/issues
135
+ changelog_uri: https://github.com/maxmind/GeoIP2-ruby/blob/master/CHANGELOG.md
136
+ documentation_uri: https://github.com/maxmind/GeoIP2-ruby
137
+ homepage_uri: https://github.com/maxmind/GeoIP2-ruby
138
+ source_code_uri: https://github.com/maxmind/GeoIP2-ruby
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: 2.4.0
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubyforge_project:
155
+ rubygems_version: 2.7.6
156
+ signing_key:
157
+ specification_version: 4
158
+ summary: A gem for interacting with the GeoIP2 webservices and databases.
159
+ test_files: []