maxmind-geoip2 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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: []