Class: Legion::Extensions::Absorbers::Matchers::Base
- Inherits:
-
Object
- Object
- Legion::Extensions::Absorbers::Matchers::Base
- Defined in:
- lib/legion/extensions/absorbers/matchers/base.rb
Direct Known Subclasses
Class Attribute Summary collapse
-
.registry ⇒ Object
readonly
Returns the value of attribute registry.
Class Method Summary collapse
- .for_type(type) ⇒ Object
- .inherited(subclass) ⇒ Object
- .match?(_pattern, _input) ⇒ Boolean
- .register(matcher_class) ⇒ Object
- .type ⇒ Object
Class Attribute Details
.registry ⇒ Object (readonly)
Returns the value of attribute registry.
11 12 13 |
# File 'lib/legion/extensions/absorbers/matchers/base.rb', line 11 def registry @registry end |
Class Method Details
.for_type(type) ⇒ Object
27 28 29 |
# File 'lib/legion/extensions/absorbers/matchers/base.rb', line 27 def for_type(type) @registry[type&.to_sym] end |
.inherited(subclass) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/legion/extensions/absorbers/matchers/base.rb', line 13 def inherited(subclass) super TracePoint.new(:end) do |tp| if tp.self == subclass register(subclass) if subclass.respond_to?(:type) && subclass.type tp.disable end end.enable end |
.match?(_pattern, _input) ⇒ Boolean
33 34 35 |
# File 'lib/legion/extensions/absorbers/matchers/base.rb', line 33 def match?(_pattern, _input) raise NotImplementedError, "#{name} must implement .match?" end |
.register(matcher_class) ⇒ Object
23 24 25 |
# File 'lib/legion/extensions/absorbers/matchers/base.rb', line 23 def register(matcher_class) @registry[matcher_class.type] = matcher_class end |
.type ⇒ Object
31 |
# File 'lib/legion/extensions/absorbers/matchers/base.rb', line 31 def type = nil |