33 lines
686 B
Ruby
33 lines
686 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module Ci
|
||
|
module Build
|
||
|
class Port
|
||
|
DEFAULT_PORT_NAME = 'default_port'.freeze
|
||
|
DEFAULT_PORT_PROTOCOL = 'http'.freeze
|
||
|
|
||
|
attr_reader :number, :protocol, :name
|
||
|
|
||
|
def initialize(port)
|
||
|
@name = DEFAULT_PORT_NAME
|
||
|
@protocol = DEFAULT_PORT_PROTOCOL
|
||
|
|
||
|
case port
|
||
|
when Integer
|
||
|
@number = port
|
||
|
when Hash
|
||
|
@number = port[:number]
|
||
|
@protocol = port.fetch(:protocol, @protocol)
|
||
|
@name = port.fetch(:name, @name)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def valid?
|
||
|
@number.present?
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|