Class: Remocon::TypeNormalizerFactory

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/remocon/normalizer/type_normalizer_factory.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.get(normalizer_sym) ⇒ Object



12
13
14
# File 'lib/remocon/normalizer/type_normalizer_factory.rb', line 12

def self.get(normalizer_sym)
  instance.plugin_map[normalizer_sym&.to_sym || Remocon::Type::VOID]
end

.register(normalizer_klass) ⇒ Object



7
8
9
10
# File 'lib/remocon/normalizer/type_normalizer_factory.rb', line 7

def self.register(normalizer_klass)
  raise "#{normalizer_klass} must inherit #{Remocon::Normalizer}" unless normalizer_klass < Remocon::Normalizer
  instance.plugin_map[normalizer_klass.respond_symbol] = normalizer_klass
end

Instance Method Details

#plugin_mapObject



16
17
18
19
20
21
22
23
# File 'lib/remocon/normalizer/type_normalizer_factory.rb', line 16

def plugin_map
  return @plugin_map if @plugin_map
  @plugin_map = {}

  Remocon::Normalizer.subclasses.each { |klass| Remocon::TypeNormalizerFactory.register(klass) }

  @plugin_map
end