Class: BaseService::Matcher
- Inherits:
-
Object
- Object
- BaseService::Matcher
- Defined in:
- lib/base_service/matcher.rb
Instance Attribute Summary collapse
-
#generic_failure_block ⇒ Object
Returns the value of attribute generic_failure_block.
-
#generic_success_block ⇒ Object
Returns the value of attribute generic_success_block.
-
#service ⇒ Object
readonly
Returns the value of attribute service.
-
#specific_failure_blocks ⇒ Object
readonly
Returns the value of attribute specific_failure_blocks.
Instance Method Summary collapse
- #appropriate_failure_block ⇒ Object
- #failure(code = nil, &block) ⇒ Object
- #failure_handled? ⇒ Boolean
-
#initialize(service) ⇒ Matcher
constructor
A new instance of Matcher.
- #raise_failure_not_handled ⇒ Object
- #resolve ⇒ Object
- #success(&block) ⇒ Object
Constructor Details
#initialize(service) ⇒ Matcher
Returns a new instance of Matcher.
3 4 5 |
# File 'lib/base_service/matcher.rb', line 3 def initialize(service) @service, @specific_failure_blocks = service, {} end |
Instance Attribute Details
#generic_failure_block ⇒ Object
Returns the value of attribute generic_failure_block.
25 26 27 |
# File 'lib/base_service/matcher.rb', line 25 def generic_failure_block @generic_failure_block end |
#generic_success_block ⇒ Object
Returns the value of attribute generic_success_block.
25 26 27 |
# File 'lib/base_service/matcher.rb', line 25 def generic_success_block @generic_success_block end |
#service ⇒ Object (readonly)
Returns the value of attribute service.
24 25 26 |
# File 'lib/base_service/matcher.rb', line 24 def service @service end |
#specific_failure_blocks ⇒ Object (readonly)
Returns the value of attribute specific_failure_blocks.
24 25 26 |
# File 'lib/base_service/matcher.rb', line 24 def specific_failure_blocks @specific_failure_blocks end |
Instance Method Details
#appropriate_failure_block ⇒ Object
32 33 34 |
# File 'lib/base_service/matcher.rb', line 32 def appropriate_failure_block specific_failure_blocks[failure_code] || generic_failure_block || raise_failure_not_handled end |
#failure(code = nil, &block) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/base_service/matcher.rb', line 11 def failure(code = nil, &block) if code.nil? self.generic_failure_block = block else specific_failure_blocks[code] = block end end |
#failure_handled? ⇒ Boolean
28 29 30 |
# File 'lib/base_service/matcher.rb', line 28 def failure_handled? generic_failure_block.present? || specific_failure_blocks[failure_code].present? end |
#raise_failure_not_handled ⇒ Object
36 37 38 |
# File 'lib/base_service/matcher.rb', line 36 def raise_failure_not_handled raise Failure.new(service, result, failure_code) end |
#resolve ⇒ Object
19 20 21 22 |
# File 'lib/base_service/matcher.rb', line 19 def resolve return appropriate_failure_block.call result if !was_success? generic_success_block.call result if generic_success_block.present? end |
#success(&block) ⇒ Object
7 8 9 |
# File 'lib/base_service/matcher.rb', line 7 def success(&block) self.generic_success_block = block end |