Sha256: ab3350ba197584a4d63afb02a28bee49ede7b236e886f10c68c256b5a29fa8c0

Contents?: true

Size: 1.24 KB

Versions: 6

Compression:

Stored size: 1.24 KB

Contents

module Spade
  class Local < Repository
    def uninstall(package)
      index = Gem::SourceIndex.from_gems_in(env.spade_dir("specifications"))
      index.refresh!
      specs = index.find_name package

      if specs.first
        uninstaller = Gem::Uninstaller.new(package, :ignore => true)
        uninstaller.uninstall_gem(specs.first, specs)
        true
      else
        false
      end
    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

6 entries across 6 versions & 1 rubygems

Version Path
spade-0.0.6 lib/spade/local.rb
spade-0.0.5 lib/spade/local.rb
spade-0.0.4 lib/spade/local.rb
spade-0.0.3 lib/spade/local.rb
spade-0.0.2 lib/spade/local.rb
spade-0.0.1 lib/spade/local.rb