Class: Dep

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/dependencies/dep.rb

Defined Under Namespace

Classes: Dependency

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependencies) ⇒ Dep

Returns a new instance of Dep.



60
61
62
63
64
65
66
67
68
# File 'lib/dependencies/dep.rb', line 60

def initialize(dependencies)
  @dependencies = []
  @missing = []

  dependencies.each_line do |line|
    next unless line =~ /^([\w\-_]+) ?([<~=> \d\.]+)?(?: \(([\w, ]+)\))?(?: ([a-z]+:\/\/.+?))?$/
    @dependencies << Dependency.new($1, $2, $3, $4)
  end
end

Instance Attribute Details

#dependenciesObject (readonly)

Returns the value of attribute dependencies.



58
59
60
# File 'lib/dependencies/dep.rb', line 58

def dependencies
  @dependencies
end

Instance Method Details

#each(&block) ⇒ Object



96
97
98
# File 'lib/dependencies/dep.rb', line 96

def each(&block)
  @dependencies.each(&block)
end

#filter(environment) ⇒ Object



70
71
72
73
74
# File 'lib/dependencies/dep.rb', line 70

def filter(environment)
  @dependencies.select do |dep|
    dep.for_environment?(environment)
  end
end

#require(environment) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/dependencies/dep.rb', line 76

def require(environment)
  filter(environment).each do |dep|
    @missing << dep unless dep.require
  end

  if !@missing.empty?
    $stderr.puts "\nMissing dependencies:\n\n"

    @missing.each do |dep|
      $stderr.puts "  #{dep}"
    end

    $stderr.puts
    $stderr.puts "Run `dep list` to view missing dependencies or `dep vendor --all` if you want to vendor them.\n\n"
    exit(1)
  end

  $:.unshift File.expand_path("lib")
end