class Tdc::ExtendedAttributes::InterpreterRegistry
Knows the class instances that interpret extended attribute values.
Public Class Methods
new()
click to toggle source
# File lib/tdc/extended_attributes/interpreter_registry.rb, line 13 def initialize @interpreters = [] end
register(interpreter:)
click to toggle source
# File lib/tdc/extended_attributes/interpreter_registry.rb, line 9 def self.register(interpreter:) instance.register_interpreter(interpreter) end
Public Instance Methods
clear()
click to toggle source
# File lib/tdc/extended_attributes/interpreter_registry.rb, line 17 def clear @interpreters = [] end
interpreters()
click to toggle source
# File lib/tdc/extended_attributes/interpreter_registry.rb, line 21 def interpreters @interpreters.empty? ? [default_interpreter] : @interpreters end
register_interpreter(interpreter)
click to toggle source
# File lib/tdc/extended_attributes/interpreter_registry.rb, line 25 def register_interpreter(interpreter) raise Tdc::FatalError, <<~MSG.chomp unless interpreter.is_a?(Tdc::ExtendedAttributes::InterpreterBase) Cannot register an interpreter unless it inherits from Tdc::ExtendedAttributes::InterpreterBase MSG # Avoid registering the same class of interpreter a second time. return if @interpreters.map(&:class).include?(interpreter.class) @interpreters << interpreter end
Private Instance Methods
default_interpreter()
click to toggle source
# File lib/tdc/extended_attributes/interpreter_registry.rb, line 38 def default_interpreter @_default_interpreter ||= Tdc::ExtendedAttributes::DefaultInterpreter.new end