Class: FService::Base Abstract
- Inherits:
-
Object
- Object
- FService::Base
- Defined in:
- lib/f_service/base.rb
Overview
This class is abstract.
Abstract base class for services. It provides the basic interface to return and handle results.
Class Method Summary collapse
-
.call(*params) ⇒ FService::Result::Success, FService::Result::Failure
Initializes and runs a new service.
Instance Method Summary collapse
-
#failure(data = nil) ⇒ FService::Result::Failure
Returns a failed operation.
- #result(condition, data = nil) ⇒ FService::Result::Success, FService::Result::Failure
-
#run ⇒ FService::Result::Success, FService::Result::Failure
This method is where the main work of your service must be.
-
#success(data = nil) ⇒ FService::Result::Success
Returns a successful operation.
Class Method Details
.call(*params) ⇒ FService::Result::Success, FService::Result::Failure
Note:
this method shouldn’t be overridden in the subclasses
Initializes and runs a new service.
22 23 24 25 26 27 |
# File 'lib/f_service/base.rb', line 22 def self.call(*params) result = new(*params).run raise(FService::Error, 'Services must return a Result') unless result.is_a? Result::Base result end |
Instance Method Details
#failure(data = nil) ⇒ FService::Result::Failure
Returns a failed operation. You’ll probably want to return this inside #run.
97 98 99 |
# File 'lib/f_service/base.rb', line 97 def failure(data = nil) FService::Result::Failure.new(data) end |
#result(condition, data = nil) ⇒ FService::Result::Success, FService::Result::Failure
124 125 126 |
# File 'lib/f_service/base.rb', line 124 def result(condition, data = nil) condition ? success(data) : failure(data) end |
#run ⇒ FService::Result::Success, FService::Result::Failure
Note:
this method SHOULD be overridden in the subclasses
This method is where the main work of your service must be. It is called after initilizing the service and should return an FService::Result.
53 54 55 |
# File 'lib/f_service/base.rb', line 53 def run raise NotImplementedError, 'Services must implement #run' end |
#success(data = nil) ⇒ FService::Result::Success
Returns a successful operation. You’ll probably want to return this inside #run.
76 77 78 |
# File 'lib/f_service/base.rb', line 76 def success(data = nil) FService::Result::Success.new(data) end |