class SimpleService::Result

Attributes

recorded_commands[RW]
value[RW]
verbose_tracking[R]

Public Class Methods

new() click to toggle source
# File lib/simple_service/result.rb, line 5
def initialize()
  @recorded_commands = []
  @verbose_tracking = SimpleService.configuration.verbose_tracking
end

Public Instance Methods

append_result(other_result) click to toggle source
# File lib/simple_service/result.rb, line 18
def append_result(other_result)
  self.value = other_result.value
  self.recorded_commands += other_result.recorded_commands
end
commands() click to toggle source
# File lib/simple_service/result.rb, line 23
def commands
  self.recorded_commands.map {|rc| rc[:command_name] }
end
failure!(klass, command_name, result_value) click to toggle source
# File lib/simple_service/result.rb, line 14
def failure!(klass, command_name, result_value)
  record_command(klass, command_name, result_value, :failure)
end
failure?() click to toggle source
# File lib/simple_service/result.rb, line 35
def failure?
  !success?
end
success!(klass, command_name, result_value) click to toggle source
# File lib/simple_service/result.rb, line 10
def success!(klass, command_name, result_value)
  record_command(klass, command_name, result_value, :success)
end
success?() click to toggle source
# File lib/simple_service/result.rb, line 31
def success?
  successes.all?
end
successes() click to toggle source
# File lib/simple_service/result.rb, line 27
def successes
  self.recorded_commands.map {|rc| rc.has_key?(:success) }
end

Private Instance Methods

record_command(klass, command_name, result_value, success_or_failure) click to toggle source
# File lib/simple_service/result.rb, line 43
def record_command(klass, command_name, result_value, success_or_failure)
  command_attrs = {
    class_name: klass.to_s,
    command_name: command_name,
  }

  command_attrs[:received_args] = self.value if verbose_tracking
  command_attrs[success_or_failure] = verbose_tracking ? result_value : true

  self.recorded_commands << command_attrs
  self.value = result_value
end