class Commande::Chain
Attributes
chain_result[RW]
commands[RW]
Public Class Methods
new(*commands)
click to toggle source
# File lib/commande/chain.rb, line 9 def initialize(*commands) self.commands = commands end
Public Instance Methods
call(**args)
click to toggle source
# File lib/commande/chain.rb, line 23 def call(**args) self.chain_result = commands.inject(InitialCommandResult.new(args)) do |last_result, current_command| current_result = current_command.call(**last_result.payload.dup) transfer_logs current_result transfer_errors current_result fail! unless transfer_success? current_result current_result end end
chain(*commands)
click to toggle source
# File lib/commande/chain.rb, line 13 def chain(*commands) new(*self.commands, *commands) end
valid(**_args)
click to toggle source
# File lib/commande/chain.rb, line 17 def valid(**_args) error! 'needs at least one command' if commands.empty? true end