Module: SimpleService::InstanceMethods

Defined in:
lib/simple_service.rb

Instance Method Summary collapse

Instance Method Details

#call(kwargs) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/simple_service.rb', line 52

def call(kwargs)
  result.value = kwargs.is_a?(Result) ? kwargs.value : kwargs

  commands.each do |command|
    @current_command = command

    command_output = if command.is_a?(Class)
      command.new.call(result.value)
    elsif command.is_a?(Symbol)
      method(command).call(result.value)
    end

    if command_output.is_a?(Result)
      result.append_result(command_output)
    end

    break if result.failure?
  end

  result
end

#commandsObject



48
49
50
# File 'lib/simple_service.rb', line 48

def commands
  self.class.instance_variable_get('@commands')
end

#failure(result_value) ⇒ Object



78
79
80
# File 'lib/simple_service.rb', line 78

def failure(result_value)
  result.failure!(self.class, @current_command, result_value)
end

#resultObject



44
45
46
# File 'lib/simple_service.rb', line 44

def result
  @result ||= Result.new
end

#success(result_value) ⇒ Object



74
75
76
# File 'lib/simple_service.rb', line 74

def success(result_value)
  result.success!(self.class, @current_command, result_value)
end