Sha256: ff879aa0026e52fcff6e3063f5940cf88d272891d3c2fdb01ee5d7e17705bc5f

Contents?: true

Size: 1.51 KB

Versions: 22

Compression:

Stored size: 1.51 KB

Contents

require "bundler/gem_helper"

module RakeCompilerDock
  class GemHelper < Bundler::GemHelper
    def install
      super

      task "release:guard_clean" => ["release:update_history"]

      task "release:update_history" do
        update_history
      end
    end

    def hfile
      "History.md"
    end

    def headline
      '([^\w]*)(\d+\.\d+\.\d+)([^\w]+)([2Y][0Y][0-9Y][0-9Y]-[0-1M][0-9M]-[0-3D][0-9D])([^\w]*|$)'
    end

    def reldate
      Time.now.strftime("%Y-%m-%d")
    end

    def version_tag
      "#{version}"
    end

    def update_history
      hin = File.read(hfile)
      hout = hin.sub(/#{headline}/) do
        raise "#{hfile} isn't up-to-date for version #{version}" unless $2==version.to_s
        $1 + $2 + $3 + reldate + $5
      end
      if hout != hin
        Bundler.ui.confirm "Updating #{hfile} for release."
        File.write(hfile, hout)
        Rake::FileUtilsExt.sh "git", "commit", hfile, "-m", "Update release date in #{hfile}"
      end
    end

    def tag_version
      Bundler.ui.confirm "Tag release with annotation:"
      m = File.read(hfile).match(/(?<annotation>#{headline}.*?)#{headline}/m) || raise("Unable to find release notes in #{hfile}")
      Bundler.ui.info(m[:annotation].gsub(/^/, "    "))
      IO.popen(["git", "tag", "--file=-", version_tag], "w") do |fd|
        fd.write m[:annotation]
      end
      yield if block_given?
    rescue
      Bundler.ui.error "Untagging #{version_tag} due to error."
      sh_with_code "git tag -d #{version_tag}"
      raise
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
rake-compiler-dock-1.9.1 build/gem_helper.rb
rake-compiler-dock-1.9.0 build/gem_helper.rb
rake-compiler-dock-1.8.0 build/gem_helper.rb
rake-compiler-dock-1.7.1 build/gem_helper.rb
rake-compiler-dock-1.7.0 build/gem_helper.rb
rake-compiler-dock-1.7.0.rc1 build/gem_helper.rb
rake-compiler-dock-1.6.0 build/gem_helper.rb
rake-compiler-dock-1.5.2 build/gem_helper.rb
rake-compiler-dock-1.5.1 build/gem_helper.rb
rake-compiler-dock-1.5.0 build/gem_helper.rb
rake-compiler-dock-1.5.0.rc1 build/gem_helper.rb
rake-compiler-dock-1.4.0 build/gem_helper.rb
rake-compiler-dock-1.4.0.rc2 build/gem_helper.rb
rake-compiler-dock-1.4.0.rc1 build/gem_helper.rb
rake-compiler-dock-1.3.1 build/gem_helper.rb
rake-compiler-dock-1.3.0 build/gem_helper.rb
rake-compiler-dock-1.2.2 build/gem_helper.rb
rake-compiler-dock-1.2.1 build/gem_helper.rb
rake-compiler-dock-1.2.0 build/gem_helper.rb
rake-compiler-dock-1.1.0 build/gem_helper.rb