Module: SimpleCommand::Dispatcher
- Extended by:
- KlassTransform
- Defined in:
- lib/simple_command_dispatcher.rb,
lib/simple_command_dispatcher/version.rb
Overview
Provides a way to call SimpleCommand commands in a more dymanic manner.
For information about the simple_command gem, visit rubygems.org/gems/simple_command
Constant Summary collapse
- VERSION =
"1.1.1"
Class Method Summary collapse
-
.call(command = "", command_modules = {}, options = {}, *command_parameters) ⇒ SimpleCommand
Calls a SimpleCommand given the command name, the modules the command belongs to and the parameters to pass to the command.
-
.is_simple_command?(klass_constant) ⇒ Boolean
Returns true or false depending on whether or not the class constant prepends module SimpleCommand::ClassMethods.
Methods included from KlassTransform
camelize, ensure_options, to_class_string, to_constantized_class, to_constantized_class_string, to_modules_string, validate_klass, validate_klass_modules
Class Method Details
.call(command = "", command_modules = {}, options = {}, *command_parameters) ⇒ SimpleCommand
Calls a SimpleCommand given the command name, the modules the command belongs to and the parameters to pass to the command.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/simple_command_dispatcher.rb', line 61 def call(command = "", command_modules = {}, = {}, *command_parameters) # Create a constantized class from our command and command_modules... simple_command_class_constant = to_constantized_class(command, command_modules, ) # Calling is_simple_command? returns true if the class pointed to by # simple_command_class_constant is a valid SimpleCommand class; that is, # if it prepends module SimpleCommand::ClassMethods. if !is_simple_command?(simple_command_class_constant) raise ArgumentError.new('Class does not prepend module SimpleCommand.') end # We know we have a valid SimpleCommand; all we need to do is call #call, # pass the command_parameter variable arguments to the call, and return the results. simple_command_class_constant.call(*command_parameters) end |
.is_simple_command?(klass_constant) ⇒ Boolean
Returns true or false depending on whether or not the class constant prepends module SimpleCommand::ClassMethods.
88 89 90 |
# File 'lib/simple_command_dispatcher.rb', line 88 def is_simple_command?(klass_constant) klass_constant.eigenclass.included_modules.include? SimpleCommand::ClassMethods end |