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