mm_geoip 0.1.0 → 0.1.1
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/bin/mm_geoip +1 -1
- data/lib/mm_geoip.rb +4 -1
- data/lib/mm_geoip/version.rb +1 -1
- data/spec/mm_geoip_spec.rb +14 -5
- metadata +73 -77
data/bin/mm_geoip
CHANGED
data/lib/mm_geoip.rb
CHANGED
@@ -19,7 +19,10 @@ class MMGeoip
|
|
19
19
|
def initialize(env)
|
20
20
|
# May be a Rack @env or any hash containing initial data. Or just an IP.
|
21
21
|
@env = env.is_a?(Hash) ? env.dup : {:ip => env}
|
22
|
-
@ip = @env[:ip] ||
|
22
|
+
@ip = @env[:ip] ||
|
23
|
+
@env["HTTP_X_REAL_IP"] ||
|
24
|
+
(@env["HTTP_X_FORWARDED_FOR"] && @env["HTTP_X_FORWARDED_FOR"].split(/[ ,]+/).first) ||
|
25
|
+
@env["REMOTE_ADDR"]
|
23
26
|
|
24
27
|
raise NoIpGiven.new("No IP in env hash") unless @ip
|
25
28
|
raise NoDatabaseFile.new("No database file: #{self.class.db_path}") unless File.exists? self.class.db_path
|
data/lib/mm_geoip/version.rb
CHANGED
data/spec/mm_geoip_spec.rb
CHANGED
@@ -27,19 +27,28 @@ describe MMGeoip do
|
|
27
27
|
|
28
28
|
describe "#initialize" do
|
29
29
|
it "works with the IP as :ip field" do
|
30
|
-
MMGeoip.new '134.34.3.2'
|
30
|
+
g = MMGeoip.new '134.34.3.2'
|
31
|
+
g.lat
|
31
32
|
end
|
32
33
|
it "works with just the IP" do
|
33
|
-
MMGeoip.new :ip => '134.34.3.2'
|
34
|
+
g = MMGeoip.new :ip => '134.34.3.2'
|
35
|
+
g.lat
|
34
36
|
end
|
35
37
|
it "works with the IP as 'REMOTE_ADDR' field" do
|
36
|
-
MMGeoip.new 'REMOTE_ADDR' => '134.34.3.2'
|
38
|
+
g = MMGeoip.new 'REMOTE_ADDR' => '134.34.3.2'
|
39
|
+
g.lat
|
37
40
|
end
|
38
41
|
it "works with the IP as 'HTTP_X_REAL_IP' field" do
|
39
|
-
MMGeoip.new 'HTTP_X_REAL_IP' => '134.34.3.2'
|
42
|
+
g = MMGeoip.new 'HTTP_X_REAL_IP' => '134.34.3.2'
|
43
|
+
g.lat
|
40
44
|
end
|
41
45
|
it "works with the IP as 'HTTP_X_FORWARDED_FOR' field" do
|
42
|
-
MMGeoip.new 'HTTP_X_FORWARDED_FOR' => '134.34.3.2'
|
46
|
+
g = MMGeoip.new 'HTTP_X_FORWARDED_FOR' => '134.34.3.2'
|
47
|
+
g.lat
|
48
|
+
end
|
49
|
+
it "works with multiple IPs as 'HTTP_X_FORWARDED_FOR' field" do
|
50
|
+
g = MMGeoip.new 'HTTP_X_FORWARDED_FOR' => '134.34.3.2, 134.34.3.3'
|
51
|
+
g.lat
|
43
52
|
end
|
44
53
|
it "raises, if not :ip or 'REMOTE_ADDR' is given" do
|
45
54
|
lambda{ MMGeoip.new :whatelse => 'something' }.should raise_error(MMGeoip::NoIpGiven)
|
metadata
CHANGED
@@ -1,92 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mm_geoip
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
4
5
|
prerelease:
|
5
|
-
version: 0.1.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Niko Dittmann
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-03-29 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: geoip
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70218519127740 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: rake
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: *70218519127740
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &70218519126080 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
35
33
|
type: :development
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: bundler
|
39
34
|
prerelease: false
|
40
|
-
|
35
|
+
version_requirements: *70218519126080
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bundler
|
38
|
+
requirement: &70218519123940 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
46
44
|
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: sinatra
|
50
45
|
prerelease: false
|
51
|
-
|
46
|
+
version_requirements: *70218519123940
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: sinatra
|
49
|
+
requirement: &70218519123220 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version:
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
57
55
|
type: :development
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: rack-test
|
61
56
|
prerelease: false
|
62
|
-
|
57
|
+
version_requirements: *70218519123220
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rack-test
|
60
|
+
requirement: &70218519122480 !ruby/object:Gem::Requirement
|
63
61
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version:
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
68
66
|
type: :development
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: rspec
|
72
67
|
prerelease: false
|
73
|
-
|
68
|
+
version_requirements: *70218519122480
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: &70218519120180 !ruby/object:Gem::Requirement
|
74
72
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version:
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
79
77
|
type: :development
|
80
|
-
|
81
|
-
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70218519120180
|
80
|
+
description: A proxy object around the geoip gem for lazy lookup. Includes a Rack
|
81
|
+
middleware.
|
82
82
|
email: mail+git@niko-dittmann.com
|
83
|
-
executables:
|
83
|
+
executables:
|
84
84
|
- mm_geoip
|
85
85
|
extensions: []
|
86
|
-
|
87
86
|
extra_rdoc_files: []
|
88
|
-
|
89
|
-
files:
|
87
|
+
files:
|
90
88
|
- lib/mm_geoip/region.rb
|
91
89
|
- lib/mm_geoip/version.rb
|
92
90
|
- lib/mm_geoip.rb
|
@@ -101,32 +99,30 @@ files:
|
|
101
99
|
- spec/spec_helper.rb
|
102
100
|
homepage: http://github.com/niko/mm_geoip
|
103
101
|
licenses: []
|
104
|
-
|
105
|
-
|
102
|
+
post_install_message: ! 'Try your new mm_geoip installation: type mm_geoip 134.34.3.2
|
103
|
+
[RETURN] in the command line.'
|
106
104
|
rdoc_options: []
|
107
|
-
|
108
|
-
require_paths:
|
105
|
+
require_paths:
|
109
106
|
- lib
|
110
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
111
108
|
none: false
|
112
|
-
requirements:
|
113
|
-
- -
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version:
|
116
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
114
|
none: false
|
118
|
-
requirements:
|
119
|
-
- -
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version:
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
122
119
|
requirements: []
|
123
|
-
|
124
120
|
rubyforge_project:
|
125
|
-
rubygems_version: 1.
|
121
|
+
rubygems_version: 1.8.10
|
126
122
|
signing_key:
|
127
123
|
specification_version: 3
|
128
124
|
summary: A proxy object around the geoip gem for lazy lookup. Includes a Rack middleware.
|
129
|
-
test_files:
|
125
|
+
test_files:
|
130
126
|
- spec/mm_geoip_region_spec.rb
|
131
127
|
- spec/mm_geoip_spec.rb
|
132
128
|
- spec/rack/mm_geoip_spec.rb
|