def perform(provider_sym, method_sym, provider_options={})
      tasks << @task_class.new(providers[provider_sym], method_sym, provider_options)
    end
def perform(provider_sym, method_sym, provider_options={})
      tasks << @task_class.new(providers[provider_sym], method_sym, provider_options)
    end
Creates a new command instance
 @option  opts [Hash] providers ({}) Providers that the command will need
   access to

 @yield [args*]The block containing the definition for the command.
   Arguments passed into {#call} are available within the block

 @api dsl
 DSL method: Define a task that will be performed during the execution stage when
 {#call} is invoked.
 @param provider_sym [Symbol] The provider to send the message to
 @param method_sym [Symbol] The method you wish to call on the provider
 @param provider_options [Hash] A hash of options to be passed when
   invoking the method on the provider.  Any lambda values will be called
   during the execution stage when #{#call} is invoked