Sha256: b0ec42a3671d71e77e5be284d85d965a72e6da1e06ac6ca2ebca9d5ebd6e5dc2

Contents?: true

Size: 1.58 KB

Versions: 22

Compression:

Stored size: 1.58 KB

Contents

module PoolParty
  class Dependencies
    
    def self.dependencies
      @dependencies ||= ["#{::File.dirname(__FILE__)}/../../vendor/dependencies/cache"]
    end
    
    def self.package(file)
      ::Tar.open(file, File::CREAT | File::WRONLY, 0644, Tar::GNU) do |tar|
        dependencies.each do |dep|
          if ::File.file? dep
            tar.append_file(dep)
          elsif ::File.directory? dep
            Dir["#{dep}/*"].each do |file|
              tar.append_file(file) if ::File.file? file
            end
          end
        end
      end      
    end
    
    def self.gems(gem_list, gem_location)
      require 'rubygems/dependency_installer'
      
      cache_dir = "#{gem_location}/cache"
      ::FileUtils.mkdir_p cache_dir rescue nil unless File.exist? cache_dir

      gem_list.each do |g|
        di = Gem::DependencyInstaller.new
        spec, url = di.find_spec_by_name_and_version(g).first
        begin
          vputs "Downloading #{g} from github (#{spec.version} - #{spec.full_name})"
          Gem::RemoteFetcher.fetcher.download spec, "http://gems.github.com", gem_location
        rescue Exception => e
          vputs "Downloading #{g} from rubyforge because #{e}"
          Gem::RemoteFetcher.fetcher.download spec, url, gem_location
        end        
      end
    end
    
    def self.packages(package_list, package_location)
      package_list.each do |package|
        puts "downloading #{package} to #{package_location}/#{package.split('/').last}"
        `curl -L #{package} > #{package_location}/#{package.split('/').last}`        
      end
    end
    
  end
end

Version data entries

22 entries across 22 versions & 3 rubygems

Version Path
auser-poolparty-1.1.1 lib/poolparty/dependencies.rb
auser-poolparty-1.1.3 lib/poolparty/dependencies.rb
auser-poolparty-1.1.4 lib/poolparty/dependencies.rb
auser-poolparty-1.1.5 lib/poolparty/dependencies.rb
auser-poolparty-1.1.6 lib/poolparty/dependencies.rb
auser-poolparty-1.1.7 lib/poolparty/dependencies.rb
auser-poolparty-1.2.0 lib/poolparty/dependencies.rb
auser-poolparty-1.2.1 lib/poolparty/dependencies.rb
auser-poolparty-1.2.10 lib/poolparty/dependencies.rb
auser-poolparty-1.2.11 lib/poolparty/dependencies.rb
auser-poolparty-1.2.12 lib/poolparty/dependencies.rb
auser-poolparty-1.2.2 lib/poolparty/dependencies.rb
auser-poolparty-1.2.3 lib/poolparty/dependencies.rb
auser-poolparty-1.2.4 lib/poolparty/dependencies.rb
auser-poolparty-1.2.7 lib/poolparty/dependencies.rb
auser-poolparty-1.2.8 lib/poolparty/dependencies.rb
auser-poolparty-1.2.9 lib/poolparty/dependencies.rb
fairchild-poolparty-1.1.3 lib/poolparty/dependencies.rb
fairchild-poolparty-1.1.4 lib/poolparty/dependencies.rb
fairchild-poolparty-1.1.5 lib/poolparty/dependencies.rb