Class: OpenvoxBootstrap::Task

Inherits:
Object
  • Object
show all
Defined in:
lib/openvox_bootstrap/task.rb

Overview

Base class for openvox_bootstrap Ruby tasks.

Class Method Summary collapse

Class Method Details

.runObject

Run the task and print the result as JSON.

Raises:

  • (ArgumentError)


9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/openvox_bootstrap/task.rb', line 9

def self.run
  params = JSON.parse($stdin.read)
  raise(ArgumentError, <<~ERR) unless params.is_a?(Hash)
    Expected a Hash, got #{params.class}: #{params.inspect}
  ERR

  params.transform_keys!(&:to_sym)
  # Clean out empty params so that task defaults are used.
  params.delete_if { |_, v| v.nil? || v == '' }

  result = new.task(**params)
  puts JSON.pretty_generate(result)

  result
end