module Hoe::Debug

def check_manifest

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

def define_debug_tasks

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