class Drydock::CliFlags

Attributes

flags[R]

Public Class Methods

new(flags = {}) click to toggle source
# File lib/drydock/cli_flags.rb, line 5
def initialize(flags = {})
  @flags = flags
end

Public Instance Methods

to_s() click to toggle source
# File lib/drydock/cli_flags.rb, line 9
def to_s
  return '' if flags.nil? || flags.empty?

  buffer = StringIO.new
  flags.each_pair do |k, v|
    buffer << process_flag(k, v)
  end

  buffer.string
end

Private Instance Methods

process_flag(key, value) click to toggle source
# File lib/drydock/cli_flags.rb, line 23
def process_flag(key, value)
  key = key.to_s
  if key.size == 1
    "-#{key} "
  else
    key = key.gsub(/_/, '-')
    case value
    when TrueClass
      "--#{key} "
    when FalseClass
      "--no-#{key} "
    else
      "--#{key} #{process_value(value)}"
    end
  end
end
process_value(value) click to toggle source
# File lib/drydock/cli_flags.rb, line 40
def process_value(value)
  value = value.to_s
  value.match(/\s/) ? value.inspect : value
end