Class: Mona::ResultAction::Ephemeral
- Inherits:
-
Object
- Object
- Mona::ResultAction::Ephemeral
- Includes:
- Mona::ResultAction
- Defined in:
- lib/mona/result_action.rb
Overview
You can create an Ephemeral Action as follows:
Example:
compute = Mona::ResultAction::Ephemeral.new do |x, y|
set :numerator, x
puts "set numerator: #{numerator}"
set :denominator, y.zero? ? Result.failure(y, :zero) : y
puts "set denominator: #{denominator}"
set :answer, numerator / denominator
puts "answer: #{answer}"
end
> compute.call(10,2)
set numerator: 10
set denominator: 2
answer: 5
=> #<Result success: {:numerator=>10, :denominator=>2, :answer=>5}>
> compute.call(10,0)
set numerator: 10
=> #<Result failure: {:numerator=>10, :denominator=>0}, error: {:error=>:zero, :on=>:denominator}>
Mona::ResultAction() is a shortcut for this
Instance Method Summary collapse
-
#initialize(&perform) ⇒ Ephemeral
constructor
A new instance of Ephemeral.
- #perform(*args, **kwargs) ⇒ Object
Methods included from Mona::ResultAction
Constructor Details
#initialize(&perform) ⇒ Ephemeral
Returns a new instance of Ephemeral.
56 57 58 |
# File 'lib/mona/result_action.rb', line 56 def initialize(&perform) @perform = perform end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Mona::ResultAction
Instance Method Details
#perform(*args, **kwargs) ⇒ Object
60 |
# File 'lib/mona/result_action.rb', line 60 def perform(*args, **kwargs) = instance_exec(*args, **kwargs, &@perform) |