class Collins::CLI::State

Constants

OPTIONS_DEFAULTS
PROG_NAME

Attributes

options[R]

Public Class Methods

new() click to toggle source
# File lib/collins/cli/state.rb, line 18
def initialize
  @options = OPTIONS_DEFAULTS.clone
  @validated = false
  @parsed = false
end

Public Instance Methods

parse!(argv = ARGV) click to toggle source
# File lib/collins/cli/state.rb, line 24
    def parse!(argv = ARGV)
      OptionParser.new do |opts|
        opts.banner = "Usage: #{PROG_NAME} [options]"
        opts.on('-l','--list',"List states.") { @options[:mode] = :list }
        opts.on('-h','--help',"Help") {puts opts ; exit 0}
        opts.separator ""
        opts.separator "Table formatting:"
        opts.on('-H','--show-header',"Show header fields in output") {options[:show_header] = true}
        opts.on('-f','--field-separator SEPARATOR',String,"Separator between columns in output (Default: #{options[:separator]})") {|v| options[:separator] = v}
        opts.separator ""
        opts.separator "Extra options:"
        opts.on('--timeout SECONDS',Integer,"Timeout in seconds (0 == forever)") {|v| options[:timeout] = v}
        opts.on('-C','--config CONFIG',String,'Use specific Collins config yaml for Collins::Client') {|v| options[:config] = v}
        opts.separator ""
        opts.separator "Examples:"
        opts.separator <<_EOF_
  Show states and statuses:
    #{PROG_NAME} --list
_EOF_
      end.parse!(argv)
      @parsed = true
      self
    end
run!() click to toggle source
# File lib/collins/cli/state.rb, line 54
def run!
  exit_clean = true
  case @options[:mode]
  when :list
    states = collins.state_get_all
    format_states(states, options)
  else
    raise "I dunno what you want me to do! See #{PROG_NAME} --help"
  end
  exit_clean

end
validate!() click to toggle source
# File lib/collins/cli/state.rb, line 48
def validate!
  raise "See --help for #{PROG_NAME} usage" if options[:mode].nil?
  @validated = true
  self
end