fastgeoip 0.1.0 → 0.2.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.
- data/README.rdoc +23 -1
- data/VERSION +1 -1
- data/ext/fastgeoip.c +2 -2
- data/fastgeoip.gemspec +2 -2
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -1,11 +1,33 @@
|
|
1
1
|
= fastgeoip
|
2
2
|
|
3
|
-
Small and simple wrapper for MaxMind GeoIP. Partly based on the MaxMind GeoIP C Code and the Net/GeoIP extension.
|
3
|
+
Small and simple wrapper for MaxMind GeoIP (country). Partly based on the MaxMind GeoIP C Code and the Net/GeoIP extension.
|
4
|
+
|
5
|
+
Currently the only supported operations are:
|
6
|
+
* open a database
|
7
|
+
* ip to country iso code lookup
|
8
|
+
|
9
|
+
... but it is fast ;-)
|
10
|
+
|
11
|
+
== How to use
|
12
|
+
|
13
|
+
gem install fastgeoip
|
14
|
+
|
15
|
+
Download the GeoIP database http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
|
16
|
+
|
17
|
+
require 'fastgeoip'
|
18
|
+
|
19
|
+
db = FastGeoIp.open 'path-to-yor-data-file/GeoIP.dat'
|
20
|
+
db.country_code_by_addr('81.1.1.1') # should yield 'US'
|
4
21
|
|
5
22
|
== Todo
|
6
23
|
|
7
24
|
* add tests
|
8
25
|
|
26
|
+
== Changelog
|
27
|
+
|
28
|
+
0.2.0 - Ruby 1.9 support
|
29
|
+
0.1.0 - initial release
|
30
|
+
|
9
31
|
== Copyright
|
10
32
|
|
11
33
|
Copyright (c) 2010 Martin Karlsch. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/ext/fastgeoip.c
CHANGED
@@ -9,7 +9,7 @@ VALUE geoip_country_code_by_addr(VALUE self, VALUE addr) {
|
|
9
9
|
|
10
10
|
Check_Type(addr, T_STRING);
|
11
11
|
Data_Get_Struct(self, fast_geoip, fgi);
|
12
|
-
cc = (char *)GeoIP_country_code_by_addr(fgi->db,
|
12
|
+
cc = (char *)GeoIP_country_code_by_addr(fgi->db, StringValuePtr(addr));
|
13
13
|
if (cc == NULL) {
|
14
14
|
return(Qnil);
|
15
15
|
} else {
|
@@ -36,7 +36,7 @@ VALUE geoip_open(int argc, VALUE *argv, VALUE class) {
|
|
36
36
|
rb_raise(rb_eArgError, "wrong number of arguments (needs 1 : filename of db)");
|
37
37
|
|
38
38
|
fgi = ALLOC(fast_geoip);
|
39
|
-
fgi->db = GeoIP_open(
|
39
|
+
fgi->db = GeoIP_open( StringValuePtr(filename), GEOIP_MEMORY_CACHE);
|
40
40
|
return(Data_Wrap_Struct(class, 0, geoip_free, fgi));
|
41
41
|
}
|
42
42
|
|
data/fastgeoip.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{fastgeoip}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Martin Karlsch"]
|
12
|
-
s.date = %q{2010-07-
|
12
|
+
s.date = %q{2010-07-20}
|
13
13
|
s.description = %q{A much longer description will follow ...}
|
14
14
|
s.email = %q{martin@karlsch.com}
|
15
15
|
s.extensions = ["ext/extconf.rb"]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastgeoip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Martin Karlsch
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-20 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|