class Apullo::Target
Attributes
id[R]
Public Class Methods
new(id)
click to toggle source
# File lib/apullo/target.rb, line 12 def initialize(id) @id = id end
Public Instance Methods
domain?()
click to toggle source
# File lib/apullo/target.rb, line 49 def domain? return false if host.match? /[0-9]\z/ PublicSuffix.valid?(host, default_rule: nil) end
host()
click to toggle source
# File lib/apullo/target.rb, line 20 def host @host ||= uri&.host end
ip?()
click to toggle source
# File lib/apullo/target.rb, line 42 def ip? IPAddr.new host true rescue IPAddr::InvalidAddressError => _e false end
ipv4()
click to toggle source
# File lib/apullo/target.rb, line 16 def ipv4 @ipv4 ||= resolve end
scheme()
click to toggle source
# File lib/apullo/target.rb, line 24 def scheme @scheme ||= uri&.scheme end
uri()
click to toggle source
# File lib/apullo/target.rb, line 32 def uri @uri ||= Addressable::URI.parse(_url) rescue Addressable::URI::InvalidURIError => _e nil end
url()
click to toggle source
# File lib/apullo/target.rb, line 28 def url @url ||= uri&.to_s end
valid?()
click to toggle source
# File lib/apullo/target.rb, line 38 def valid? uri && (ip? | domain?) end
Private Instance Methods
_url()
click to toggle source
# File lib/apullo/target.rb, line 57 def _url @_url ||= id.start_with?("http://", "https://") ? id : "http://#{id}" end
resolve()
click to toggle source
# File lib/apullo/target.rb, line 61 def resolve Resolv.getaddress uri&.host rescue Resolv::ResolvError => _e nil end