module Hoe::Debug

Debug plugin for hoe.

Tasks Provided:

check_manifest

Verify the manifest.

config_hoe

Create a fresh ~/.hoerc file.

debug_gem

Show information about the gem.

Public Instance Methods

check_manifest() click to toggle source

Verifies your Manifest.txt against the files in your project.

# File lib/hoe/debug.rb, line 72
def check_manifest
  f = "Manifest.tmp"
  require "find"
  files = []
  with_config do |config, _|
    exclusions = config["exclude"]

    Find.find "." do |path|
      next unless File.file? path
      next if path =~ exclusions
      files << path[2..-1]
    end

    files = files.sort.join "\n"

    File.open f, "w" do |fp| fp.puts files end

    verbose = { :verbose => Rake.application.options.trace || Rake.verbose }

    begin
      sh "#{DIFF} -du Manifest.txt #{f}", verbose
    ensure
      rm f, **verbose
    end
  end
end
define_debug_tasks() click to toggle source

Define tasks for plugin.

# File lib/hoe/debug.rb, line 33
def define_debug_tasks
  desc "Create a fresh ~/.hoerc file."
  task :config_hoe do
    with_config do |config, path|
      File.open(path, "w") do |f|
        YAML.dump(Hoe::DEFAULT_CONFIG.merge(config), f)
      end

      editor = ENV["EDITOR"] || "vi"
      system "#{editor} #{path}" if ENV["SHOW_EDITOR"] != "no"
    end
  end

  desc "Verify the manifest."
  task :check_manifest => :clean do
    check_manifest
  end

  desc "Show information about the gem."
  task :debug_gem do
    puts spec.to_ruby
  end

  task :isolate # stub
  task :irb => :isolate do
    name = spec.name.gsub("-", "/")
    file = (spec.files.grep(/^lib\/#{name}\.rb$/).first ||
            spec.files.grep(/^lib\/[^\/]*\.rb$/).first)

    require = File.basename(file, ".rb") if file
    require &&= "-r#{require}"

    ruby "#{Hoe::RUBY_FLAGS} -S irb #{require}"
  end
end