Class: Mrsk::Configuration::Accessory
- Inherits:
-
Object
- Object
- Mrsk::Configuration::Accessory
- Defined in:
- lib/mrsk/configuration/accessory.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#specifics ⇒ Object
Returns the value of attribute specifics.
Instance Method Summary collapse
- #directories ⇒ Object
- #env ⇒ Object
- #env_args ⇒ Object
- #files ⇒ Object
- #host ⇒ Object
- #image ⇒ Object
-
#initialize(name, config:) ⇒ Accessory
constructor
A new instance of Accessory.
- #label_args ⇒ Object
- #labels ⇒ Object
- #port ⇒ Object
- #service_name ⇒ Object
- #volume_args ⇒ Object
- #volumes ⇒ Object
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
#name ⇒ Object
Returns the value of attribute name.
4 5 6 |
# File 'lib/mrsk/configuration/accessory.rb', line 4 def name @name end |
#specifics ⇒ Object
Returns the value of attribute specifics.
4 5 6 |
# File 'lib/mrsk/configuration/accessory.rb', line 4 def specifics @specifics end |
Instance Method Details
#directories ⇒ Object
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(":") [ (host_relative_path), container_path ] end || {} end |
#env ⇒ Object
38 39 40 |
# File 'lib/mrsk/configuration/accessory.rb', line 38 def env specifics["env"] || {} end |
#env_args ⇒ Object
42 43 44 |
# File 'lib/mrsk/configuration/accessory.rb', line 42 def env_args argumentize_env_with_secrets env end |
#files ⇒ Object
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(":") [ (local_file), (remote_file) ] end || {} end |
#host ⇒ Object
18 19 20 |
# File 'lib/mrsk/configuration/accessory.rb', line 18 def host specifics["host"] || raise(ArgumentError, "Missing host for accessory") end |
#image ⇒ Object
14 15 16 |
# File 'lib/mrsk/configuration/accessory.rb', line 14 def image specifics["image"] end |
#label_args ⇒ Object
34 35 36 |
# File 'lib/mrsk/configuration/accessory.rb', line 34 def label_args argumentize "--label", labels end |
#labels ⇒ Object
30 31 32 |
# File 'lib/mrsk/configuration/accessory.rb', line 30 def labels default_labels.merge(specifics["labels"] || {}) end |
#port ⇒ Object
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_name ⇒ Object
10 11 12 |
# File 'lib/mrsk/configuration/accessory.rb', line 10 def service_name "#{config.service}-#{name}" end |
#volume_args ⇒ Object
64 65 66 |
# File 'lib/mrsk/configuration/accessory.rb', line 64 def volume_args argumentize "--volume", volumes end |
#volumes ⇒ Object
60 61 62 |
# File 'lib/mrsk/configuration/accessory.rb', line 60 def volumes specific_volumes + remote_files_as_volumes + remote_directories_as_volumes end |