class Serverspec::Type::Port

Public Instance Methods

listening?(protocol, local_address) click to toggle source
# File lib/serverspec/type/port.rb, line 30
def listening?(protocol, local_address)
  protocol_matcher(protocol) if protocol
  local_address_matcher(local_address) if local_address
  @runner.check_port_is_listening(@name, options)
end
local_address_matcher(local_address) click to toggle source
# File lib/serverspec/type/port.rb, line 22
def local_address_matcher(local_address)
  if valid_ip_address?(local_address)
    options[:local_address] = local_address
  else
    raise ArgumentError.new("`be_listening` matcher requires valid IPv4 or IPv6 address")
  end
end
options() click to toggle source
# File lib/serverspec/type/port.rb, line 9
def options
  @options ||= {}
end
protocol_matcher(protocol) click to toggle source
# File lib/serverspec/type/port.rb, line 13
def protocol_matcher(protocol)
  protocol = protocol.to_s.downcase
  if protocols.include?(protocol)
    options[:protocol] = protocol
  else
    raise ArgumentError.new("`be_listening` matcher doesn't support #{protocol}")
  end
end
protocols() click to toggle source
# File lib/serverspec/type/port.rb, line 5
def protocols
  %w(udp tcp tcp6 udp6)
end
valid_ip_address?(ip_address) click to toggle source
# File lib/serverspec/type/port.rb, line 36
def valid_ip_address?(ip_address)
  !!(ip_address =~ Resolv::IPv4::Regex) || !!(ip_address =~ Resolv::IPv6::Regex)
end