Module: WorkflowTemplate::Adapters::State::DryMonads::ClassMethods
- Includes:
- State::Adapter::Abstract::ClassMethods
- Defined in:
- lib/workflow_template/adapters/state/dry_monads.rb
Instance Method Summary collapse
- #canonical?(wrapped_state) ⇒ Boolean
- #error?(wrapped_state) ⇒ Boolean
- #flat_map_unwrappable_state(wrapped_state, &block) ⇒ Object
- #map_unwrappable_state(wrapped_state, &block) ⇒ Object
- #run_handler!(state, _binding, &block) ⇒ Object
- #unwrap_error(wrapped_state) ⇒ Object
- #unwrap_success(wrapped_state) ⇒ Object
- #wrap_error_with_bare_state(error, _bare_state) ⇒ Object
- #wrap_success(bare_state) ⇒ Object
Instance Method Details
#canonical?(wrapped_state) ⇒ Boolean
21 22 23 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 21 def canonical?(wrapped_state) wrapped_state.is_a? Dry::Monads::Result end |
#error?(wrapped_state) ⇒ Boolean
25 26 27 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 25 def error?(wrapped_state) wrapped_state.failure? end |
#flat_map_unwrappable_state(wrapped_state, &block) ⇒ Object
53 54 55 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 53 def flat_map_unwrappable_state(wrapped_state, &block) wrapped_state.bind(&block) end |
#map_unwrappable_state(wrapped_state, &block) ⇒ Object
49 50 51 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 49 def map_unwrappable_state(wrapped_state, &block) wrapped_state.fmap(&block) end |
#run_handler!(state, _binding, &block) ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 57 def run_handler!(state, _binding, &block) if state.error? state.wrapped_state.or { Handler.instance_exec(state.error, &block) } else state.wrapped_state.bind { Handler.instance_exec(**state., &block) } end end |
#unwrap_error(wrapped_state) ⇒ Object
43 44 45 46 47 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 43 def unwrap_error(wrapped_state) raise Fatal::InconsistentState, "Expected Failure, got #{wrapped_state}" unless wrapped_state.failure? wrapped_state.failure end |
#unwrap_success(wrapped_state) ⇒ Object
33 34 35 36 37 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 33 def unwrap_success(wrapped_state) raise Fatal::InconsistentState, "Expected Success, got #{wrapped_state}" unless wrapped_state.success? wrapped_state.success end |
#wrap_error_with_bare_state(error, _bare_state) ⇒ Object
39 40 41 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 39 def (error, ) Dry::Monads::Failure(error) end |
#wrap_success(bare_state) ⇒ Object
29 30 31 |
# File 'lib/workflow_template/adapters/state/dry_monads.rb', line 29 def wrap_success() Dry::Monads::Success() end |