class PublicIp::Service::Simple
Attributes
headers[R]
uri[R]
Public Class Methods
headers()
click to toggle source
# File lib/public_ip/service/simple.rb, line 30 def self.headers {} end
ip()
click to toggle source
# File lib/public_ip/service/simple.rb, line 14 def self.ip response = perform_request ip_address = extract_ip(response) unless IPAddress.valid?(ip_address) raise PublicIp::Service::InvalidIpAddress, "#{ip_address} is not a valid ip address" end ip_address end
perform_request()
click to toggle source
# File lib/public_ip/service/simple.rb, line 45 def self.perform_request Timeout.timeout(PublicIp::TIMEOUT_IN_SECS, PublicIp::Service::TimedOut) do request = Net::HTTP::Get.new(uri, headers) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = (uri.scheme == 'https') http.request(request) end end
symbol()
click to toggle source
Perform a demodulize and underscore (as in Rails)
# File lib/public_ip/service/simple.rb, line 35 def self.symbol symbol = name.match(/(?:.*)::(.*)$/)[1] symbol.gsub!(/::/, '/') symbol.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2') symbol.gsub!(/([a-z\d])([A-Z])/, '\1_\2') symbol.tr!('-', '_') symbol.downcase! symbol.to_sym end
uri()
click to toggle source
# File lib/public_ip/service/simple.rb, line 26 def self.uri raise 'Not implemented' end