Sha256: 6ec6f48d69f61de1573b3c35809feb631e6ca19e45ca4076351f469f5fe5ef2c
Contents?: true
Size: 1.49 KB
Versions: 4
Compression:
Stored size: 1.49 KB
Contents
require 'rubygems/tasks/task' module Gem class Tasks module SCM # # The `scm:status` task. # class Status < Task # # Initializes the `status` task. # # @param [Hash] options # Additional options. # def initialize(options={}) super() yield self if block_given? define end # # 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 # # Checks the status of the project repository. # # @return [String] # The status of the project repository. # def status case @project.scm when :git then `git status --short` when :hg then `hg status` when :svn then `svn status` else '' end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems