Sha256: c3ffbbc76b437e784ae7f16ce93c76be4f4e0294216f5eca003ec9a98bf95390
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 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? puts status fail "Project has uncommitted changes!" 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rubygems-tasks-0.1.0.pre2 | lib/rubygems/tasks/scm/status.rb |