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