lib/clamp/subcommand/parsing.rb in clamp-0.5.1 vs lib/clamp/subcommand/parsing.rb in clamp-0.6.0
- old
+ new
@@ -1,40 +1,22 @@
require 'clamp/subcommand/execution'
module Clamp
- class Subcommand
+ module Subcommand
module Parsing
protected
def parse_subcommand
return false unless self.class.has_subcommands?
- subcommand_name = parse_subcommand_name
- @subcommand = instatiate_subcommand(subcommand_name)
self.extend(Subcommand::Execution)
end
private
- def parse_subcommand_name
- remaining_arguments.shift || self.class.default_subcommand || request_help
- end
-
- def find_subcommand(name)
- self.class.find_subcommand(name) ||
- signal_usage_error("No such sub-command '#{name}'")
- end
-
- def instatiate_subcommand(name)
- subcommand_class = find_subcommand(name).subcommand_class
- subcommand = subcommand_class.new("#{invocation_path} #{name}", context)
- self.class.recognised_options.each do |option|
- if instance_variable_defined?(option.ivar_name)
- subcommand.instance_variable_set(option.ivar_name, instance_variable_get(option.ivar_name))
- end
- end
- subcommand
+ def default_subcommand_name
+ self.class.default_subcommand || request_help
end
end
end