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
|
class String #:nodoc:
def uncapitalize #:nodoc:
"#{self[0..0].downcase}#{self[1..-1]}"
end
def any?
size > 0
end
end
class ::Rake::SshDirPublisher # :nodoc:
attr_reader :host, :remote_dir, :local_dir
end
class Echoe
def self.silence
if !ENV['VERBOSE']
stdout, stderr = $stdout.clone, $stderr.clone
$stdout.reopen(File.new("#{Dir.tmpdir}/stdout.echoe", 'w'))
$stderr.reopen(File.new("#{Dir.tmpdir}/stderr.echoe", 'w'))
begin
yield
ensure
$stdout.reopen(stdout)
$stderr.reopen(stderr)
end
else
yield
end
end
end
# Redefine instead of chain a Rake task
# http://www.bigbold.com/snippets/posts/show/2032
module Rake
module TaskManager
def redefine_task(task_class, *args, &block)
task_name, deps = resolve_args(args)
task_name = task_class.scope_name(@scope, task_name)
deps = [deps] unless deps.respond_to?(:to_ary)
deps = deps.collect {|d| d.to_s }
task = @tasks[task_name.to_s] = task_class.new(task_name, self)
task.application = self
task.send(:add_comment, @last_comment)
@last_comment = nil
task.enhance(deps, &block)
task
end
end
class Task
class << self
def redefine_task(*args, &block)
Rake.application.redefine_task(self, *args, &block)
end
end
end
end
|