Sha256: c099607863c415d85e5b443e9821f4fb594f776ad91b30fddc6c9ccccee3077d

Contents?: true

Size: 769 Bytes

Versions: 1

Compression:

Stored size: 769 Bytes

Contents

# frozen_string_literal: true

module Schienenzeppelin
  class Dependencies
    def initialize(addon, context)
      @addon = addon
      @context = context
      @options = context.options
    end

    def satisfied?
      @addon.dependencies.each do |dependency|
        return false unless dependencies_satisfied?(dependency)
      end

      true
    end

    private

    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
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
schienenzeppelin-0.2 lib/schienenzeppelin/dependencies.rb