blob: 67be47b99f004b9168df5c5c82a4980e83cb2f09 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
##
# 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.
module Hoe::Debug
include Rake::DSL if defined? ::Rake::DSL
Hoe::DEFAULT_CONFIG["exclude"] = /tmp$|CVS|TAGS|\.(svn|git|DS_Store)/
# :stopdoc:
DIFF = if Hoe::WINDOZE
"diff.exe"
else
if system("gdiff", __FILE__, __FILE__)
"gdiff" # solaris and kin suck
else
"diff"
end
end unless defined? DIFF
# :startdoc:
##
# Define tasks for plugin.
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
##
# Verifies your Manifest.txt against the files in your project.
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.verbose }
begin
sh "#{DIFF} -du Manifest.txt #{f}", verbose
ensure
rm f, **verbose
end
end
end
end
|