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