maxmind-geoip2 0.1.0

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