Class: Depend::Installer

Inherits:
Object
  • Object
show all
Defined in:
lib/depend/installer.rb

Class Method Summary collapse

Class Method Details

.install(spec) ⇒ Object



8
9
10
# File 'lib/depend/installer.rb', line 8

def self.install(spec)
  install_platform_dependencies(spec)
end

.install_platform_dependencies(spec) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/depend/installer.rb', line 12

def self.install_platform_dependencies(spec)
  puts "install dependency for gem"
  os_platform = OSPlatform.local
  depend_instance = Depend::Base.new(os_platform.platform, os_platform.platform_version)
  package_providers = depend_instance.package_providers
  unless package_providers.empty?
    package_provider = decide(package_providers)
    deps = depend_instance.dependencies_for(package_provider)

    unless deps.empty?
      puts "Trying to install native dependencies for Gem '#{spec.name}': #{deps.join ' '}"
      deps.each do |dep|
        unless package_provider.install(spec.name, dep)
          fail Depend::InstallError, "Failed to install native dependencies for '#{spec.name}'."
        end
      end
    end
  end
end