class Schienenzeppelin::Dependencies

Public Class Methods

new(addon, context) click to toggle source
# File lib/schienenzeppelin/dependencies.rb, line 5
def initialize(addon, context)
  @addon = addon
  @context = context
  @options = context.options
end

Public Instance Methods

satisfied?() click to toggle source
# File lib/schienenzeppelin/dependencies.rb, line 11
def satisfied?
  @addon.dependencies.each do |dependency|
    return false unless dependencies_satisfied?(dependency)
  end

  true
end

Private Instance Methods

dependencies_satisfied?(addon, visited = []) click to toggle source
# File lib/schienenzeppelin/dependencies.rb, line 21
def dependencies_satisfied?(addon, visited = [])
  return false if @options["skip_#{addon}".to_sym]

  return true if @context.default_addons.include?(addon)

  visited << addon
  dependencies = AddOn.get(addon).dependencies - visited
  dependencies.each do |dependency|
    return false unless dependencies_satisfied?(dependency, visited)
  end
end