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