module Lono::Jade::Circular

Public Instance Methods

check_for_circular_dependency!() click to toggle source
# File lib/lono/jade/circular.rb, line 3
def check_for_circular_dependency!
  circular = circular_dependency?
  return unless circular

  puts "ERROR: jade circular dependency detected".color(:red)
  puts "circular dependency: #{parent_names.join(" => ")}"
  exit 1
end
circular_dependency?() click to toggle source
# File lib/lono/jade/circular.rb, line 12
def circular_dependency?
  parent_names.uniq.size != parent_names.size
end
parent_names() click to toggle source
# File lib/lono/jade/circular.rb, line 16
def parent_names
  names = [self.name] # include initial jade name to detect circular dependency earlier
  parent = registry.parent
  while parent
    names << parent.name
    parent = parent.registry.parent
  end
  names
end