Class: Mrsk::Tags

Inherits:
Object
  • Object
show all
Defined in:
lib/mrsk/tags.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**tags) ⇒ Tags

Returns a new instance of Tags.



24
25
26
# File 'lib/mrsk/tags.rb', line 24

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

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



4
5
6
# File 'lib/mrsk/tags.rb', line 4

def config
  @config
end

#tagsObject (readonly)

Returns the value of attribute tags.



4
5
6
# File 'lib/mrsk/tags.rb', line 4

def tags
  @tags
end

Class Method Details

.default_tags(config) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/mrsk/tags.rb', line 11

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

.from_config(config, **extra) ⇒ Object



7
8
9
# File 'lib/mrsk/tags.rb', line 7

def from_config(config, **extra)
  new(**default_tags(config), **extra)
end

.service_version(config) ⇒ Object



19
20
21
# File 'lib/mrsk/tags.rb', line 19

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

Instance Method Details

#envObject



28
29
30
# File 'lib/mrsk/tags.rb', line 28

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

#except(*tags) ⇒ Object



36
37
38
# File 'lib/mrsk/tags.rb', line 36

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

#to_sObject



32
33
34
# File 'lib/mrsk/tags.rb', line 32

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