Sha256: be5f654d38bb686d0e66cde1489b7b2d4aa9c0d1bc4750802596ee310427a2d7

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

module Spade
  class Local < Repository
    def uninstall(package)
      Gem::Uninstaller.new(package).uninstall
      true
    rescue Gem::InstallError
      false
    end

    def pack(path)
      package = Spade::Package.new(creds.email)
      package.json_path = path
      if package.valid?
        silence do
          Gem::Builder.new(package.to_spec).build
        end
      end
      package
    end

    def unpack(path, target)
      package       = Spade::Package.new
      package.spade = path
      unpack_dir    = File.expand_path(File.join(Dir.pwd, target, package.to_full_name))
      Gem::Installer.new(path, :unpack => true).unpack unpack_dir
      package
    end

    def installed(packages)
      specs = Gem.source_index.search dependency_for(packages)

      specs.map do |spec|
        [spec.name, spec.version, spec.original_platform]
      end
    end

    private

    def silence
      Gem.configuration.verbose = false
      result = yield
      Gem.configuration.verbose = true
      result
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spade-0.0.8.1 lib/spade/local.rb
spade-0.0.7 lib/spade/local.rb