Class: Quo::Composing::ClassStrategyRegistry
- Inherits:
-
Object
- Object
- Quo::Composing::ClassStrategyRegistry
- Defined in:
- lib/quo/composing/class_strategy_registry.rb,
sig/generated/quo/composing/class_strategy_registry.rbs
Overview
Registry for class composition strategies
Instance Method Summary collapse
- #find_strategy(left, right) ⇒ Quo::Composing::BaseStrategy
- #strategies ⇒ Array[Quo::Composing::BaseStrategy]
Instance Method Details
#find_strategy(left, right) ⇒ Quo::Composing::BaseStrategy
22 23 24 25 26 27 28 |
# File 'lib/quo/composing/class_strategy_registry.rb', line 22 def find_strategy(left, right) strategy = strategies.find { |s| s.applicable?(left, right) } unless strategy raise ArgumentError, "No class composition strategy found for #{left.class} and #{right.class}" end strategy end |
#strategies ⇒ Array[Quo::Composing::BaseStrategy]
12 13 14 15 16 17 |
# File 'lib/quo/composing/class_strategy_registry.rb', line 12 def strategies @strategies ||= [ QueryClassesStrategy.new # Add more class strategies as needed ] end |