Demonstraion of how to create your own cap/rake tasks gem

In this demo we'll create a rubygem called 'demrec'.

It will contain tasks for rake and capistrano that can easily be shared between multiple projects.

Start a new gem

gem install bundler
bundle gem demrec
# update demrec.gemspec
rake install

Add tasks

You can explore the source of this 'demrec' to see examples of tasks.

mkdir demrec/lib/demrec/recipes
touch deprec/lib/demrec/db.{rake,rb} # Add tasks later

# Update lib/demrec.rb
if defined?(Capistrano)
  Dir.glob("#{File.dirname(__FILE__)}/deprec/recipes/*.rb").each { |t| 
    require t 
  }
elsif defined?(Rake)
  Dir.glob("#{File.dirname(__FILE__)}/deprec/recipes/*.rake").each { |t| 
    import t 
  }
end

Add to your project

echo "gem 'demrec'" >> Gemfile

echo "require 'demrec'" >> Rakefile
echo "require 'demrec'" >> Capfile

# Those last two can be omitted under certain circumstances.