Sha256: 50fc369a4436aae1ac2f4d1faa571e428e9f89304e6407d31d1f0a7a281f2ccd
Contents?: true
Size: 958 Bytes
Versions: 1
Compression:
Stored size: 958 Bytes
Contents
module Clamp module Subcommand module Execution # override default Command behaviour def execute # delegate to subcommand subcommand = instantiate_subcommand(subcommand_name) subcommand.run(subcommand_arguments) end private def instantiate_subcommand(name) subcommand_class = find_subcommand_class(name) parent_attribute_values = {} self.class.inheritable_attributes.each do |attribute| if attribute.of(self).defined? parent_attribute_values[attribute] = attribute.of(self).get end end subcommand_class.new("#{invocation_path} #{name}", context, parent_attribute_values) end def find_subcommand_class(name) subcommand_def = self.class.find_subcommand(name) || signal_usage_error(Clamp.message(:no_such_subcommand, :name => name)) subcommand_def.subcommand_class end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
clamp-1.0.1 | lib/clamp/subcommand/execution.rb |