Sha256: 5a2a7bcfbe43645b9f44542f27a628e1339cbf4cb43312e07517674913991b8c

Contents?: true

Size: 813 Bytes

Versions: 15

Compression:

Stored size: 813 Bytes

Contents

require "time"

class Kamal::Tags
  attr_reader :config, :tags

  class << self
    def from_config(config, **extra)
      new(**default_tags(config), **extra)
    end

    def default_tags(config)
      { recorded_at: Time.now.utc.iso8601,
        performer: `whoami`.chomp,
        destination: config.destination,
        version: config.version,
        service_version: service_version(config) }
    end

    def service_version(config)
      [ config.service, config.abbreviated_version ].compact.join("@")
    end
  end

  def initialize(**tags)
    @tags = tags.compact
  end

  def env
    tags.transform_keys { |detail| "KAMAL_#{detail.upcase}" }
  end

  def to_s
    tags.values.map { |value| "[#{value}]" }.join(" ")
  end

  def except(*tags)
    self.class.new(**self.tags.except(*tags))
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
kamal-1.7.3 lib/kamal/tags.rb
kamal-1.7.2 lib/kamal/tags.rb
kamal-1.7.1 lib/kamal/tags.rb
kamal-1.7.0 lib/kamal/tags.rb
kamal-1.6.0 lib/kamal/tags.rb
kamal-1.5.1 lib/kamal/tags.rb
kamal-1.5.0 lib/kamal/tags.rb
kamal-1.4.0 lib/kamal/tags.rb
kamal-1.3.1 lib/kamal/tags.rb
kamal-1.3.0 lib/kamal/tags.rb
kamal-1.2.0 lib/kamal/tags.rb
kamal-1.1.0 lib/kamal/tags.rb
kamal-1.0.0 lib/kamal/tags.rb
kamal-0.16.1 lib/kamal/tags.rb
kamal-0.16.0 lib/kamal/tags.rb