rgeoip 0.0.2 → 0.0.3

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/.gemtest ADDED
File without changes
data/Gemfile CHANGED
@@ -11,4 +11,5 @@ group :development do
11
11
  gem "jeweler", "~> 1.5.2"
12
12
  gem "rcov", ">= 0"
13
13
  gem "ZenTest"
14
+ gem "rack"
14
15
  end
data/Gemfile.lock CHANGED
@@ -7,6 +7,7 @@ GEM
7
7
  bundler (~> 1.0.0)
8
8
  git (>= 1.2.5)
9
9
  rake
10
+ rack (1.2.1)
10
11
  rake (0.8.7)
11
12
  rcov (0.9.9)
12
13
  yard (0.6.4)
@@ -18,5 +19,6 @@ DEPENDENCIES
18
19
  ZenTest
19
20
  bundler (~> 1.0.0)
20
21
  jeweler (~> 1.5.2)
22
+ rack
21
23
  rcov
22
24
  yard (~> 0.6.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
data/ext/rgeoip.c CHANGED
@@ -113,8 +113,6 @@ static VALUE
113
113
  gi_new(int argc, VALUE *argv, VALUE self)
114
114
  {
115
115
  Rgeoip *gi;
116
- VALUE flags;
117
- VALUE filenames;
118
116
  int i;
119
117
 
120
118
  Data_Get_Struct(self, Rgeoip, gi);
@@ -294,7 +292,7 @@ gid_new(int argc, VALUE *argv, VALUE self)
294
292
 
295
293
  rb_scan_args(argc, argv, "11", &filename, &flags);
296
294
 
297
- Check_Type(filename, T_STRING);
295
+ filename = StringValue(filename);
298
296
 
299
297
  gid->ptr = GeoIP_open(RSTRING_PTR(filename),
300
298
  GEOIP_MEMORY_CACHE | GEOIP_CHECK_CACHE | GEOIP_MMAP_CACHE);
@@ -0,0 +1,27 @@
1
+ require 'rack'
2
+ require 'rgeoip'
3
+
4
+ module Rack::Rgeoip
5
+ def self.new(app, options={})
6
+ Lookup.new(app, options)
7
+ end
8
+
9
+ class Lookup
10
+ DEFAULT = { :db => '/usr/share/GeoIP/GeoIP.dat' }
11
+
12
+ def initialize(app, options={})
13
+ @app, @options = app, DEFAULT.merge(options)
14
+ @rgeoip = Rgeoip.new @options[:db]
15
+ end
16
+
17
+ def call(env)
18
+ @app.call(lookup env)
19
+ end
20
+
21
+ def lookup(env)
22
+ env.tap do
23
+ env['rack.geoip'] = @rgeoip.country(Rack::Request.new(env).ip)
24
+ end
25
+ end
26
+ end
27
+ end
data/rgeoip.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rgeoip}
8
- s.version = "0.0.0"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["miyucy"]
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
27
27
  "VERSION",
28
28
  "ext/extconf.rb",
29
29
  "ext/rgeoip.c",
30
+ "rgeoip.gemspec",
30
31
  "test/helper.rb",
31
32
  "test/test_rgeoip.rb",
32
33
  "test/test_rgeoip_database.rb"
Binary file
Binary file
data/test/helper.rb CHANGED
@@ -13,6 +13,7 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
13
13
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
14
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'ext'))
15
15
  require 'rgeoip'
16
+ require 'rack/rgeoip'
16
17
 
17
18
  class Test::Unit::TestCase
18
19
  end
@@ -0,0 +1,15 @@
1
+ require 'helper'
2
+
3
+ class TestRackRgeoipLookup < Test::Unit::TestCase
4
+ def test_initialize
5
+ assert_respond_to(Rack::Rgeoip.new(nil), :call)
6
+ end
7
+
8
+ def test_initialize_with_hash
9
+ assert_nothing_raised { Rack::Rgeoip.new(nil, {}) }
10
+ end
11
+
12
+ def test_pass_to_app
13
+ Rack::Rgeoip.new(lambda { |env| assert env.has_key? 'rack.geoip' }).call({})
14
+ end
15
+ end
data/test/test_rgeoip.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'helper'
2
2
  require 'tempfile'
3
+ require 'pathname'
3
4
 
4
5
  class TestRgeoip < Test::Unit::TestCase
5
6
  def test_constant
@@ -16,6 +17,12 @@ class TestRgeoip < Test::Unit::TestCase
16
17
  }
17
18
  end
18
19
 
20
+ def test_open_with_pathname
21
+ assert_nothing_raised {
22
+ Rgeoip.new.open Pathname.new(paths[:country])
23
+ }
24
+ end
25
+
19
26
  def test_open_invalid_dbfile
20
27
  assert_raise(RuntimeError) {
21
28
  Rgeoip.new.open Tempfile.new("rgeoip").path
@@ -60,8 +67,8 @@ class TestRgeoip < Test::Unit::TestCase
60
67
 
61
68
  def paths
62
69
  {
63
- :country => File.expand_path("../GeoIP.dat", File.dirname(__FILE__)),
64
- :city => File.expand_path("../GeoLiteCity.dat", File.dirname(__FILE__)),
70
+ :country => File.expand_path("data/GeoIP.dat", File.dirname(__FILE__)),
71
+ :city => File.expand_path("data/GeoLiteCity.dat", File.dirname(__FILE__)),
65
72
  }
66
73
  end
67
74
 
@@ -76,8 +76,8 @@ class TestRgeoipDatabase < Test::Unit::TestCase
76
76
 
77
77
  def paths
78
78
  {
79
- :country => File.expand_path("../GeoIP.dat", File.dirname(__FILE__)),
80
- :city => File.expand_path("../GeoLiteCity.dat", File.dirname(__FILE__)),
79
+ :country => File.expand_path("data/GeoIP.dat", File.dirname(__FILE__)),
80
+ :city => File.expand_path("data/GeoLiteCity.dat", File.dirname(__FILE__)),
81
81
  }
82
82
  end
83
83
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rgeoip
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
4
+ hash: 25
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - miyucy
@@ -15,10 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-26 00:00:00 +09:00
18
+ date: 2011-02-18 00:00:00 +09:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
+ type: :development
22
23
  requirement: &id001 !ruby/object:Gem::Requirement
23
24
  none: false
24
25
  requirements:
@@ -30,11 +31,11 @@ dependencies:
30
31
  - 6
31
32
  - 0
32
33
  version: 0.6.0
33
- prerelease: false
34
34
  name: yard
35
- type: :development
36
35
  version_requirements: *id001
36
+ prerelease: false
37
37
  - !ruby/object:Gem::Dependency
38
+ type: :development
38
39
  requirement: &id002 !ruby/object:Gem::Requirement
39
40
  none: false
40
41
  requirements:
@@ -46,11 +47,11 @@ dependencies:
46
47
  - 0
47
48
  - 0
48
49
  version: 1.0.0
49
- prerelease: false
50
50
  name: bundler
51
- type: :development
52
51
  version_requirements: *id002
52
+ prerelease: false
53
53
  - !ruby/object:Gem::Dependency
54
+ type: :development
54
55
  requirement: &id003 !ruby/object:Gem::Requirement
55
56
  none: false
56
57
  requirements:
@@ -62,11 +63,11 @@ dependencies:
62
63
  - 5
63
64
  - 2
64
65
  version: 1.5.2
65
- prerelease: false
66
66
  name: jeweler
67
- type: :development
68
67
  version_requirements: *id003
68
+ prerelease: false
69
69
  - !ruby/object:Gem::Dependency
70
+ type: :development
70
71
  requirement: &id004 !ruby/object:Gem::Requirement
71
72
  none: false
72
73
  requirements:
@@ -76,11 +77,11 @@ dependencies:
76
77
  segments:
77
78
  - 0
78
79
  version: "0"
79
- prerelease: false
80
80
  name: rcov
81
- type: :development
82
81
  version_requirements: *id004
82
+ prerelease: false
83
83
  - !ruby/object:Gem::Dependency
84
+ type: :development
84
85
  requirement: &id005 !ruby/object:Gem::Requirement
85
86
  none: false
86
87
  requirements:
@@ -90,10 +91,23 @@ dependencies:
90
91
  segments:
91
92
  - 0
92
93
  version: "0"
93
- prerelease: false
94
94
  name: ZenTest
95
- type: :development
96
95
  version_requirements: *id005
96
+ prerelease: false
97
+ - !ruby/object:Gem::Dependency
98
+ type: :development
99
+ requirement: &id006 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
107
+ version: "0"
108
+ name: rack
109
+ version_requirements: *id006
110
+ prerelease: false
97
111
  description: alternative libGeoIP binding for Ruby
98
112
  email: miyucy@gmail.com
99
113
  executables: []
@@ -105,6 +119,7 @@ extra_rdoc_files:
105
119
  - README.rdoc
106
120
  files:
107
121
  - .document
122
+ - .gemtest
108
123
  - Gemfile
109
124
  - Gemfile.lock
110
125
  - LICENSE.txt
@@ -113,8 +128,12 @@ files:
113
128
  - VERSION
114
129
  - ext/extconf.rb
115
130
  - ext/rgeoip.c
131
+ - lib/rack/rgeoip.rb
116
132
  - rgeoip.gemspec
133
+ - test/data/GeoIP.dat
134
+ - test/data/GeoLiteCity.dat
117
135
  - test/helper.rb
136
+ - test/test_rack_rgeoip_lookup.rb
118
137
  - test/test_rgeoip.rb
119
138
  - test/test_rgeoip_database.rb
120
139
  has_rdoc: true
@@ -147,11 +166,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
166
  requirements: []
148
167
 
149
168
  rubyforge_project:
150
- rubygems_version: 1.3.7
169
+ rubygems_version: 1.5.2
151
170
  signing_key:
152
171
  specification_version: 3
153
172
  summary: alternative libGeoIP binding for Ruby
154
173
  test_files:
155
174
  - test/helper.rb
175
+ - test/test_rack_rgeoip_lookup.rb
156
176
  - test/test_rgeoip.rb
157
177
  - test/test_rgeoip_database.rb