class Nmap::Command::PortRange

Represents a port range.

@api private

Constants

PORT_RANGE_REGEXP

Regular expression to validate either a port or a port range.

REGEXP

Regular expression to validate either a port or a port range.

Public Instance Methods

format(value) click to toggle source

Formats the given port or port range value.

@param [Range, Integer, String] value

The port or port range value to format.

@return [String]

The formatted port or port range.
Calls superclass method Nmap::Command::Port#format
# File lib/nmap/command.rb, line 316
def format(value)
  case value
  when Range
    "#{value.begin}-#{value.end}"
  else
    super(value)
  end
end
validate(value) click to toggle source

Validates the given port or port range value.

@param [Object] value

The port or port range value to validate.

@return [true, (false, String)]

Returns true if the value is valid, or `false` and a validation error
message if the value is not compatible.
Calls superclass method Nmap::Command::Port#validate
# File lib/nmap/command.rb, line 280
def validate(value)
  case value
  when Range
    valid, message = super(value.begin)

    unless valid
      return [valid, message]
    end

    valid, message = super(value.end)

    unless valid
      return [valid, message]
    end

    return true
  when String
    if value =~ REGEXP
      return true
    else
      return [false, "must be a valid port number, port range, or service name (#{value.inspect})"]
    end
  else
    super(value)
  end
end