class KuberKit::Core::ServiceDefinition

Attributes

dependencies[R]
service_name[R]
template_name[R]

Public Class Methods

new(service_name) click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 5
def initialize(service_name)
  @service_name = service_name.to_sym
  @dependencies = []
end

Public Instance Methods

attributes(value = nil, &block) click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 45
def attributes(value = nil, &block)
  @attributes = block_given? ? block : value

  self
end
depends_on(*value, &block) click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 22
def depends_on(*value, &block)
  @dependencies = Array(value).flatten
  self
end
deployer_strategy(value = nil, &block) click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 51
def deployer_strategy(value = nil, &block)
  @deployer_strategy = block_given? ? block : value

  self
end
images(*value, &block) click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 39
def images(*value, &block)
  @images = block_given? ? block : Array(value).flatten

  self
end
tags(*value, &block) click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 33
def tags(*value, &block)
  @tags = block_given? ? block : Array(value).flatten

  self
end
template(value = nil, &block) click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 27
def template(value = nil, &block)
  @template_name = block_given? ? block : value

  self
end
to_service_attrs() click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 10
def to_service_attrs
  OpenStruct.new(
    name:               @service_name,
    dependencies:       @dependencies,
    template_name:      get_value(@template_name),
    tags:               Array(get_value(@tags)).map(&:to_sym),
    images:             Array(get_value(@images)).map(&:to_sym),
    attributes:         get_value(@attributes),
    deployer_strategy:  get_value(@deployer_strategy),
  )
end

Private Instance Methods

get_value(variable) click to toggle source
# File lib/kuber_kit/core/service_definition.rb, line 58
def get_value(variable)
  variable.is_a?(Proc) ? variable.call : variable
end