Class: Kettle::Family::Orderer
- Inherits:
-
Object
- Object
- Kettle::Family::Orderer
- Includes:
- TSort
- Defined in:
- lib/kettle/family/orderer.rb
Instance Method Summary collapse
-
#initialize(members:, mode: "dependency", hints: []) ⇒ Orderer
constructor
A new instance of Orderer.
- #ordered ⇒ Object
Constructor Details
#initialize(members:, mode: "dependency", hints: []) ⇒ Orderer
Returns a new instance of Orderer.
10 11 12 13 14 15 |
# File 'lib/kettle/family/orderer.rb', line 10 def initialize(members:, mode: "dependency", hints: []) @members = members @mode = mode @hints = hints @by_name = members.to_h { |member| [member.name, member] } end |
Instance Method Details
#ordered ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/kettle/family/orderer.rb', line 17 def ordered case mode when "dependency" tsort when "fixed" fixed_order else raise Error, "unknown order mode #{mode.inspect}" end rescue TSort::Cyclic => error raise Error, "dependency cycle detected: #{error.}" end |