module Hoe::Deps
Deps
plugin for hoe.
Tasks Provided:¶ ↑
- check_extra_deps
-
Install missing dependencies.
- deps:email
-
Print a contact list for gems dependent on this gem
- deps:fetch
-
Fetch all the dependent gems of this gem into tarballs
- deps:list
-
List all the dependent gems of this gem
Constants
- GEMURL
The main rubygems repository.
Public Instance Methods
define_deps_tasks()
click to toggle source
Define tasks for plugin.
# File lib/hoe/deps.rb, line 23 def define_deps_tasks namespace :deps do desc "List all the dependent gems of this gem" task :list do deps_list_task end desc "Print a contact list for gems dependent on this gem" task :email do deps_email_task end desc "Fetch all the dependent gems of this gem into tarballs" task :fetch do deps_fetch_task end end desc "Install missing dependencies." task :check_extra_deps do check_extra_deps_task end desc "Install missing plugins." task :install_plugins do install_missing_plugins end end
dependent_upon(name)
click to toggle source
Return all the dependencies on the named rubygem.
# File lib/hoe/deps.rb, line 217 def dependent_upon name get_latest_gems.find_all { |gem| gem.dependencies.any? { |dep| dep.name == name } } end
get_gems_by_name()
click to toggle source
Return a hash of the latest rubygems keyed by name.
# File lib/hoe/deps.rb, line 188 def get_gems_by_name @@by_name ||= Hash[*get_latest_gems.map { |gem| [gem.name, gem, gem.full_name, gem] }.flatten] end
get_latest_gems()
click to toggle source
Return the latest rubygems.
# File lib/hoe/deps.rb, line 181 def get_latest_gems @@cache ||= Hash[*get_source_index.flatten].values end
get_source_index()
click to toggle source
Return the rubygems source index.
# File lib/hoe/deps.rb, line 148 def get_source_index @@index ||= nil return @@index if @@index dump = unless File.exist? ".source_index" then warn "Fetching full index and caching. This can take a while." url = GEMURL + "Marshal.#{Gem.marshal_version}.Z" dump = Gem::RemoteFetcher.fetcher.fetch_path url dump = Gem.inflate dump warn "stripping index to latest gems" ary = Marshal.load dump h = {} Hash[ary].values.sort.each { |spec| h[spec.name] = spec } ary = h.map { |_, v| [v.full_name, v] } dump = Marshal.dump ary open ".source_index", "wb" do |io| io.write dump end dump else open ".source_index", "rb" do |io| io.read end end @@index = Marshal.load dump end
install_missing_plugins(plugins = Hoe.bad_plugins)
click to toggle source
Installs plugins that aren’t currently installed
# File lib/hoe/deps.rb, line 197 def install_missing_plugins plugins = Hoe.bad_plugins version = ">= 0" plugins.each do |name| dash_name = name.to_s.gsub "_", "-" next if have_gem?("hoe-#{name}") or have_gem?(name) or have_gem?(dash_name) install_gem("hoe-#{name}", version, false) or install_gem(name, version, false) or install_gem(dash_name, version, false) or warn "could not install gem for #{name} plugin" end end