Class: Omnizip::Converter::ConversionRegistry
- Inherits:
-
Object
- Object
- Omnizip::Converter::ConversionRegistry
- Defined in:
- lib/omnizip/converter/conversion_registry.rb
Overview
Registry for conversion strategies
Class Method Summary collapse
-
.find_strategy(source, target) ⇒ Class?
Find strategy for source and target formats.
-
.register(strategy_class) ⇒ Object
Register a conversion strategy.
-
.reset ⇒ Object
Reset registry (for testing).
-
.strategies ⇒ Array<Class>
Get all registered strategies.
-
.supported?(source, target) ⇒ Boolean
Check if conversion is supported.
Class Method Details
.find_strategy(source, target) ⇒ Class?
Find strategy for source and target formats
20 21 22 |
# File 'lib/omnizip/converter/conversion_registry.rb', line 20 def find_strategy(source, target) @strategies.find { |strategy| strategy.can_convert?(source, target) } end |
.register(strategy_class) ⇒ Object
Register a conversion strategy
12 13 14 |
# File 'lib/omnizip/converter/conversion_registry.rb', line 12 def register(strategy_class) @strategies << strategy_class unless @strategies.include?(strategy_class) end |
.reset ⇒ Object
Reset registry (for testing)
39 40 41 |
# File 'lib/omnizip/converter/conversion_registry.rb', line 39 def reset @strategies = [] end |
.strategies ⇒ Array<Class>
Get all registered strategies
26 27 28 |
# File 'lib/omnizip/converter/conversion_registry.rb', line 26 def strategies @strategies end |
.supported?(source, target) ⇒ Boolean
Check if conversion is supported
34 35 36 |
# File 'lib/omnizip/converter/conversion_registry.rb', line 34 def supported?(source, target) !find_strategy(source, target).nil? end |