Module: IpAddressServices

Defined in:
lib/ipaddressservices.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.apikeyObject

Returns the value of attribute apikey.



15
16
17
# File 'lib/ipaddressservices.rb', line 15

def apikey
  @apikey
end

.data_formatObject

Returns the value of attribute data_format.



14
15
16
# File 'lib/ipaddressservices.rb', line 14

def data_format
  @data_format
end

Class Method Details

.base_uriObject



17
18
19
20
# File 'lib/ipaddressservices.rb', line 17

def base_uri
  fmt = data_format == :xml ? 'xml' : 'json'
  "#{@base_uri}/#{fmt}"
end

.get_ip_address(ipaddress) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/ipaddressservices.rb', line 22

def get_ip_address(ipaddress) 
  #/{apikey}/{ipadderss}
  response = Typhoeus::Request.get( "#{base_uri}/ipaddress.svc/GetIP?apikey=#{apikey}&ip=#{ipaddress}") 
			if response.code == 200 
    if data_format == :xml
      j = MultiXml.parse(response.body)
      raise "BAD API KEY" if j.first[1].first[1]["City"] == nil
    else
      j = JSON::parse(response.body)
      raise "BAD API KEY" if j.first[1]["City"] == nil 
    end
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end

.zip_codes_in_radius_of_ip(ipaddress, rad) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/ipaddressservices.rb', line 41

def zip_codes_in_radius_of_ip(ipaddress, rad)
  response = Typhoeus::Request.get( "#{base_uri}/ipaddress.svc/GetZipsInRadiusOfIP?apikey=#{apikey}&ip=#{ipaddress}&radius=#{rad}") 
			if response.code == 200 
    if data_format == :xml
      j = MultiXml.parse(response.body)
 	raise "BAD API KEY" if j.first[1].first[1].first[1]["PostalCode"] == nil
    else
      j = JSON::parse(response.body)
      raise "BAD API KEY" if j["RetrieveZipCodesInRadiusOfIPResult"] == nil 
    end
    j
  elsif response.code == 404
    nil 
  else 
    raise response.body 
  end 
end