module Dependz::Add

Public Instance Methods

add(depend_by:, depend_on:) click to toggle source
# File lib/dependz/add.rb, line 7
def add(depend_by:, depend_on:)
  forms = depend_by.is_a?(Array) ? depend_by : [depend_by]
  tos = depend_on.is_a?(Array) ? depend_on : [depend_on]

  forms.each do |from|
    tos.each do |to|
      add_dependency(from, to)
    end
  end

  self
end

Private Instance Methods

add_dependency(from, to) click to toggle source
# File lib/dependz/add.rb, line 22
def add_dependency(from, to)
  new_dag = @dag.dup
  new_dag.add_edge(from, to)

  raise CircularDependenceError unless new_dag.cycles.empty?

  @dag = new_dag

  self
end