class Nanoc::Core::ItemRepSelector::MicroGraph
Public Class Methods
new(reps)
click to toggle source
# File lib/nanoc/core/item_rep_selector.rb, line 12 def initialize(reps) @reps = Set.new(reps) @stack = [] end
Public Instance Methods
mark_failed(dep)
click to toggle source
# File lib/nanoc/core/item_rep_selector.rb, line 34 def mark_failed(dep) if @stack.include?(dep) raise Nanoc::Core::Errors::DependencyCycle.new(@stack + [dep]) end @reps.delete(dep) @stack.push(dep) end
mark_ok()
click to toggle source
# File lib/nanoc/core/item_rep_selector.rb, line 30 def mark_ok @stack.pop end
next()
click to toggle source
# File lib/nanoc/core/item_rep_selector.rb, line 17 def next if @stack.any? @stack.last elsif @reps.any? @reps.each { |rep| break rep }.tap do |rep| @reps.delete(rep) @stack.push(rep) end else nil end end