Sha256: 91cfca60fe81656feeadcf98efb5997d5dcb58a9c50c20b12f4d0204bfdb326c

Contents?: true

Size: 875 Bytes

Versions: 28

Compression:

Stored size: 875 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: Kamal::Git.email.presence || `whoami`.chomp,
        destination: config.destination,
        version: config.version,
        service_version: service_version(config),
        service: config.service }
    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

28 entries across 28 versions & 2 rubygems

Version Path
kamal-2.5.1 lib/kamal/tags.rb
kamal-2.5.0 lib/kamal/tags.rb
kamal-2.4.0 lib/kamal/tags.rb
nocoffee-kamal-2.3.0.3 lib/kamal/tags.rb
nocoffee-kamal-2.3.0.2 lib/kamal/tags.rb
nocoffee-kamal-2.3.0.1 lib/kamal/tags.rb
kamal-2.3.0 lib/kamal/tags.rb
kamal-2.2.2 lib/kamal/tags.rb
kamal-2.2.1 lib/kamal/tags.rb
kamal-2.2.0 lib/kamal/tags.rb
kamal-1.9.2 lib/kamal/tags.rb
kamal-2.1.2 lib/kamal/tags.rb
kamal-2.1.1 lib/kamal/tags.rb
kamal-2.1.0 lib/kamal/tags.rb
kamal-1.9.1 lib/kamal/tags.rb
kamal-2.0.0 lib/kamal/tags.rb
kamal-1.9.0 lib/kamal/tags.rb
kamal-2.0.0.rc4 lib/kamal/tags.rb
kamal-2.0.0.rc3 lib/kamal/tags.rb
kamal-2.0.0.rc2 lib/kamal/tags.rb