Sha256: 0ecea981c9e446413ea0d2a3ccdc56313d0165cabbf93d87c3e918f71264d655

Contents?: true

Size: 806 Bytes

Versions: 3

Compression:

Stored size: 806 Bytes

Contents

class KuberKit::Core::Service
  AttributeNotSet = Class.new(Indocker::Error)

  attr_reader :name, :template_name, :tags, :images, :attributes

  Contract KeywordArgs[
    name:           Symbol,
    template_name:  Symbol,
    tags:           ArrayOf[Symbol],
    images:         ArrayOf[Symbol],
    attributes:     HashOf[Symbol => Any],
  ] => Any
  def initialize(name:, template_name:, tags:, images:, attributes:)
    @name = name
    @template_name = template_name
    @tags = tags
    @images = images
    @attributes = attributes
  end

  def uri
    name.to_s.gsub("_", "-")
  end

  def attribute(attribute_name)
    unless attributes.has_key?(attribute_name.to_sym)
      raise AttributeNotSet, "attribute #{attribute_name} was not set"
    end

    attributes[attribute_name.to_sym]
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kuber_kit-0.1.7 lib/kuber_kit/core/service.rb
kuber_kit-0.1.6 lib/kuber_kit/core/service.rb
kuber_kit-0.1.5 lib/kuber_kit/core/service.rb