Class: PlugemsDeploy::DependencyHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/plugems_deploy/dependency_handler.rb

Constant Summary collapse

MAX_DEPENDENCY_DEPTH =
10000

Instance Method Summary collapse

Constructor Details

#initialize(source = local_cache) ⇒ DependencyHandler

Returns a new instance of DependencyHandler.



10
11
12
13
# File 'lib/plugems_deploy/dependency_handler.rb', line 10

def initialize(source = local_cache)
  @gems = []
  @source = source
end

Instance Method Details

#collect_dependencies(start_point, show) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/plugems_deploy/dependency_handler.rb', line 26

def collect_dependencies(start_point, show)
      
  fail("Circular dependencies?\n#{ @gems.to_yaml }") if @gems.size > MAX_DEPENDENCY_DEPTH
      
  show_data("#{ start_point[:name] }: [ ", show)
  query_dependencies(start_point).each do |gem|
    mark_dependency(gem)
    show_data("  { #{ gem[:name] } => #{ gem[:version] } }", show)
    collect_dependencies(gem, show && (show + 4))      
  end
  show_data("]", show)
  
end

#dependencies(name, version, deps_only = false, show = false) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/plugems_deploy/dependency_handler.rb', line 15

def dependencies(name, version, deps_only = false, show = false)
    
  gem = gem_data(query_gem_spec(name, version))

  mark_dependency(gem) unless deps_only == 'true'
  collect_dependencies(gem, show)
  
  compacted_collected_dependencies

end