simple_geoip 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/simple_geoip.rb +5 -0
- data/simple_geoip.gemspec +1 -1
- data/test/test_basics.rb +8 -0
- metadata +1 -1
data/lib/simple_geoip.rb
CHANGED
@@ -7,6 +7,7 @@ module SimpleGeoIP
|
|
7
7
|
|
8
8
|
# parse this the web page and find lat and long, FUCK YEAH!
|
9
9
|
def self.find_geo(ip_address)
|
10
|
+
return ["", ""] unless valid_ip? ip_address
|
10
11
|
url = lookup_url ip_address
|
11
12
|
doc = Nokogiri::HTML open(url)
|
12
13
|
table = doc.search('table').last
|
@@ -23,5 +24,9 @@ module SimpleGeoIP
|
|
23
24
|
def self.lookup_url(ip_address)
|
24
25
|
API + ip_address
|
25
26
|
end
|
27
|
+
|
28
|
+
def self.valid_ip?(ip_address)
|
29
|
+
!!ip_address.match(/^(\d{1,3}\.){3}\d{1,3}$/)
|
30
|
+
end
|
26
31
|
|
27
32
|
end
|
data/simple_geoip.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
## If your rubyforge_project name is different, then edit it and comment out
|
9
9
|
## the sub! line in the Rakefile
|
10
10
|
s.name = 'simple_geoip'
|
11
|
-
s.version = '0.0.
|
11
|
+
s.version = '0.0.3'
|
12
12
|
s.date = '2011-05-30'
|
13
13
|
|
14
14
|
## Make sure your summary is short. The description may be as long
|
data/test/test_basics.rb
CHANGED
@@ -15,5 +15,13 @@ class TestSimpleGeoIP < Test::Unit::TestCase
|
|
15
15
|
lat, long = SimpleGeoIP::find_geo @test_ip
|
16
16
|
assert_equal @geo_from_test_ip, [lat, long]
|
17
17
|
end
|
18
|
+
|
19
|
+
def test_valid_ip_address
|
20
|
+
assert SimpleGeoIP::valid_ip?(@test_ip)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_invalid_ip_address
|
24
|
+
assert !SimpleGeoIP::valid_ip?("127.0.1/1")
|
25
|
+
end
|
18
26
|
|
19
27
|
end
|