build_order

in lib/omnibus/library.rb [63:79]


    def build_order
      head = []
      tail = []
      @components.each do |component|
        if head.length == 0 || @project.build_dependencies.include?(component.name)
          head << component
        elsif @project.dependencies.include?(component.name) && @components.any? { |c| c.build_dependencies.include?(component.name) }
          head << component
        elsif @project.dependencies.include?(component.name) && @components.none? { |c| c.dependencies.include?(component.name) }
          tail << component
        else
          head << component
        end
      end
      [head, tail].flatten
    end