class Postmodern::Command

Attributes

options[R]

Public Class Methods

default_option(key, value) click to toggle source
# File lib/postmodern/command.rb, line 24
def default_option(key, value)
  default_options[key] = value
end
default_options() click to toggle source
# File lib/postmodern/command.rb, line 20
def default_options
  @default_options ||= {}
end
inherited(subclass) click to toggle source
# File lib/postmodern/command.rb, line 6
def inherited(subclass)
  subclass.instance_variable_set(:@required_options, @required_options)
  subclass.instance_variable_set(:@default_options, @default_options)
end
new(args) click to toggle source
# File lib/postmodern/command.rb, line 35
def initialize(args)
  @options = self.class.default_options.dup

  parse_args(args)
  validate!
end
required_option(*options) click to toggle source
# File lib/postmodern/command.rb, line 15
def required_option(*options)
  required_options.concat(options)
  required_options.uniq!
end
required_options() click to toggle source
# File lib/postmodern/command.rb, line 11
def required_options
  @required_options ||= []
end

Public Instance Methods

missing_params() click to toggle source
# File lib/postmodern/command.rb, line 52
def missing_params
  self.class.required_options - self.options.keys
end
parse_args(args) click to toggle source
# File lib/postmodern/command.rb, line 56
def parse_args(args)
  parser.parse!(args)
end
parser() click to toggle source
# File lib/postmodern/command.rb, line 29
def parser
  raise "Command needs to define an OptionParser"
end
run() click to toggle source
# File lib/postmodern/command.rb, line 42
def run
end
usage!() click to toggle source
# File lib/postmodern/command.rb, line 60
def usage!
  puts parser.to_s
  exit 1
end
validate!() click to toggle source
# File lib/postmodern/command.rb, line 45
def validate!
  if missing_params.any?
    puts "Missing #{missing_params.join(', ')}"
    usage!
  end
end