module Rake
class Task
class << self
alias :original_define_task :define_task
end
def self.define_task(*args, &block)
original_define_task *args do |task|
if block_given?
arguments = ARGV.select do |arg|
!arg.include?(task.name) && original_define_task(arg.to_sym) do; end
end
block.call *arguments
end
end
end
end
end
require_relative "task"
desc "Send an invite"
task :invite do |name, email|
puts "Invitation sent to '#{name} <#{email}>'"
end
# Example:
#
# $ rake invite "Paul Engel" paul@engel.com
# Invitation sent to 'Paul Engel <paul@engel.com>'
#