Class: PDK::CLI::Util::OptionNormalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/pdk/cli/util/option_normalizer.rb

Class Method Summary collapse

Class Method Details

.comma_separated_list_to_array(list, _options = {}) ⇒ Object



7
8
9
10
11
# File 'lib/pdk/cli/util/option_normalizer.rb', line 7

def self.comma_separated_list_to_array(list, _options = {})
  raise 'Error: expected comma separated list' unless OptionValidator.comma_separated_list?(list)

  list.split(',').compact
end

.report_formats(formats) ⇒ Array<Hash{Symbol=>Object}>

Parse one or more format:target pairs into report format specifications.

Each specification is a Hash with two values:

:method => The name of the method to call on the PDK::Report object
           to render the report.
:target => The target to write the report to. This can be either an
           IO object that implements #write, or a String filename
           that will be opened for writing.

If the target given is “stdout” or “stderr”, this will convert those strings into the appropriate IO object.

Returns:

  • (Array<Hash{Symbol=>Object}>)

    An array of one or more report format specifications



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/pdk/cli/util/option_normalizer.rb', line 28

def self.report_formats(formats)
  formats.map do |f|
    format, target = f.split(':', 2)

    begin
      OptionValidator.enum(format, PDK::Report.formats)
    rescue ArgumentError
      raise PDK::CLI::ExitWithError, format("'%{name}' is not a valid report format (%{valid})", name: format, valid: PDK::Report.formats.join(', '))
    end

    case target
    when 'stdout'
      target = $stdout
    when 'stderr'
      target = $stderr
    when nil
      target = PDK::Report.default_target
    end

    { method: :"write_#{format}", target: target }
  end
end