Class: Nanoc::Core::ItemRepSelector
- Inherits:
-
Object
- Object
- Nanoc::Core::ItemRepSelector
- Defined in:
- lib/nanoc/core/item_rep_selector.rb
Overview
Yields item reps to compile.
Defined Under Namespace
Classes: ItemRepPriorityQueue
Instance Method Summary collapse
- #each ⇒ Object
-
#initialize(outdated_reps:, reps:, dependency_store:) ⇒ ItemRepSelector
constructor
A new instance of ItemRepSelector.
Constructor Details
#initialize(outdated_reps:, reps:, dependency_store:) ⇒ ItemRepSelector
Returns a new instance of ItemRepSelector.
7 8 9 10 11 |
# File 'lib/nanoc/core/item_rep_selector.rb', line 7 def initialize(outdated_reps:, reps:, dependency_store:) @outdated_reps = outdated_reps @reps = reps @dependency_store = dependency_store end |
Instance Method Details
#each ⇒ Object
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/nanoc/core/item_rep_selector.rb', line 122 def each pq = ItemRepPriorityQueue.new( outdated_reps: @outdated_reps, reps: @reps, dependency_store: @dependency_store, ) loop do rep = pq.next break if rep.nil? begin yield(rep) pq.mark_ok rescue => e actual_error = e.is_a?(Nanoc::Core::Errors::CompilationError) ? e.unwrap : e if actual_error.is_a?(Nanoc::Core::Errors::UnmetDependency) pq.mark_failed(needed_rep: actual_error.rep) else raise(e) end end end end |