class Rookie::Tasks

Provides many useful tasks, like the Gem, Git and Console tasks.

Don't forget to call define_tasks! after creating an instance of this class!

Attributes

console[RW]

The Console task.

gem[RW]

The Gem task.

git[RW]

The Git task.

Public Class Methods

new(gemspec, opts = {}) { |self| ... } click to toggle source

Initializes the tasks with the given gem specification and options.

Yields the new instance if given a block.

# File lib/rookie/tasks.rb, line 26
def initialize(gemspec, opts = {})
  self.gem = Tasks::Gem.new gemspec
  self.git = Tasks::Git.new gem.spec.version.to_s
  self.console = Tasks::Console.new gem.spec, opts
  yield self if block_given?
end

Public Instance Methods

define_tasks!() click to toggle source

Defines the tasks for all initialized (not nil) tasks.

# File lib/rookie/tasks.rb, line 34
def define_tasks!
  setup_tasks, clean_tasks, release_tasks = [], [], []

  if git
    git.define_tasks!
    release_tasks << 'git:release'
  end

  if gem
    gem.define_tasks!
    setup_tasks << 'gem:setup'
    clean_tasks << 'gem:clean'
    release_tasks << 'gem:release'
  end

  console.define_tasks! if console

  desc 'Setup project'
  task :setup => setup_tasks

  desc 'Remove temporary files'
  task :clean => clean_tasks

  desc 'Release project'
  task :release => release_tasks + clean_tasks

  task :default => :setup
end