Class: Mrsk::Configuration::Accessory

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, config:) ⇒ Accessory

Returns a new instance of Accessory.



6
7
8
# File 'lib/mrsk/configuration/accessory.rb', line 6

def initialize(name, config:)
  @name, @config, @specifics = name.inquiry, config, config.raw_config["accessories"][name]
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



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

def name
  @name
end

#specificsObject

Returns the value of attribute specifics.



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

def specifics
  @specifics
end

Instance Method Details

#directoriesObject



53
54
55
56
57
58
# File 'lib/mrsk/configuration/accessory.rb', line 53

def directories
  specifics["directories"]&.to_h do |host_to_container_mapping|
    host_relative_path, container_path = host_to_container_mapping.split(":")
    [ expand_host_path(host_relative_path), container_path ]
  end || {}
end

#envObject



38
39
40
# File 'lib/mrsk/configuration/accessory.rb', line 38

def env
  specifics["env"] || {}
end

#env_argsObject



42
43
44
# File 'lib/mrsk/configuration/accessory.rb', line 42

def env_args
  argumentize_env_with_secrets env
end

#filesObject



46
47
48
49
50
51
# File 'lib/mrsk/configuration/accessory.rb', line 46

def files
  specifics["files"]&.to_h do |local_to_remote_mapping|
    local_file, remote_file = local_to_remote_mapping.split(":")
    [ expand_local_file(local_file), expand_remote_file(remote_file) ]
  end || {}
end

#hostObject



18
19
20
# File 'lib/mrsk/configuration/accessory.rb', line 18

def host
  specifics["host"] || raise(ArgumentError, "Missing host for accessory")
end

#imageObject



14
15
16
# File 'lib/mrsk/configuration/accessory.rb', line 14

def image
  specifics["image"]
end

#label_argsObject



34
35
36
# File 'lib/mrsk/configuration/accessory.rb', line 34

def label_args
  argumentize "--label", labels
end

#labelsObject



30
31
32
# File 'lib/mrsk/configuration/accessory.rb', line 30

def labels
  default_labels.merge(specifics["labels"] || {})
end

#portObject



22
23
24
25
26
27
28
# File 'lib/mrsk/configuration/accessory.rb', line 22

def port
  if specifics["port"].to_s.include?(":")
    specifics["port"]
  else
    "#{specifics["port"]}:#{specifics["port"]}"
  end
end

#service_nameObject



10
11
12
# File 'lib/mrsk/configuration/accessory.rb', line 10

def service_name
  "#{config.service}-#{name}"
end

#volume_argsObject



64
65
66
# File 'lib/mrsk/configuration/accessory.rb', line 64

def volume_args
  argumentize "--volume", volumes
end

#volumesObject



60
61
62
# File 'lib/mrsk/configuration/accessory.rb', line 60

def volumes
  specific_volumes + remote_files_as_volumes + remote_directories_as_volumes
end