class Gem::Tasks::SCM::Status

def define


Defines the `status` task.
def define
  namespace :scm do
    task :status do
      status = self.status
      unless status.strip.empty?
        error "Project has uncommitted changes!"
        puts status
        abort
      end
    end
  end
  # do not allow tagging releases when the repository is dirty
  task 'scm:tag' => 'scm:status'
  # do not allow pushing commits when the repository is dirty
  task 'scm:push' => 'scm:status'
  # do not allow pushing gems when the repository is dirty
  task :push => 'scm:status'
end