Sha256: a402f15da94bd7c490d9e31d73b1e6c17133ba5f7014bf712e52203694d99f6b
Contents?: true
Size: 887 Bytes
Versions: 1
Compression:
Stored size: 887 Bytes
Contents
class Rack::App::CLI::Command require 'optparse' class << self def options_parser_options @options_parser_options ||= [] end def description(message = nil) @description = message unless message.nil? @description || '' end alias desc description def option(*args, &block) options_parser_options << {:args => args, :block => block} end alias on option def action(&block) @action = block unless block.nil? @action || Proc.new {} end end attr_reader :name def initialize(name) @name = name.to_s @option_parser = OptionParser.new self.class.options_parser_options.each { |h| @option_parser.on(*h[:args], &h[:block]) } end def description self.class.description end def start(argv) @option_parser.parse!(argv) instance_exec(*argv,&(self.class.action)) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rack-app-3.0.0.delta | lib/rack/app/cli/command.rb |