icleversoft
3/29/2014 - 4:58 PM

Rakefile

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>'
#