Class: KamalBackup::CommandSpec

Inherits:
Object
  • Object
show all
Defined in:
lib/kamal_backup/command.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv:, env: {}, host: nil) ⇒ CommandSpec

Returns a new instance of CommandSpec.

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
18
19
20
21
# File 'lib/kamal_backup/command.rb', line 11

def initialize(argv:, env: {}, host: nil)
  @argv = Array(argv).compact.map(&:to_s)
  @host = host.to_s unless host.to_s.empty?
  @env = env.each_with_object({}) do |(key, value), result|
    next if value.nil? || value.to_s.empty?

    result[key.to_s] = value.to_s
  end

  raise ArgumentError, "command argv cannot be empty" if @argv.empty?
end

Instance Attribute Details

#argvObject (readonly)

Returns the value of attribute argv.



9
10
11
# File 'lib/kamal_backup/command.rb', line 9

def argv
  @argv
end

#envObject (readonly)

Returns the value of attribute env.



9
10
11
# File 'lib/kamal_backup/command.rb', line 9

def env
  @env
end

#hostObject (readonly)

Returns the value of attribute host.



9
10
11
# File 'lib/kamal_backup/command.rb', line 9

def host
  @host
end

Instance Method Details

#display(redactor) ⇒ Object



23
24
25
26
# File 'lib/kamal_backup/command.rb', line 23

def display(redactor)
  env_prefix = env.keys.sort.map { |key| "#{key}=#{redactor.redact_value(key, env[key])}" }
  redactor.redact_string((env_prefix + [argv.shelljoin]).join(" "))
end