Merge pull request #556 from Retrospring/winver.exe
add rake task for easier version bumping
This commit is contained in:
commit
737ba177ce
|
@ -0,0 +1,49 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
namespace :version do
|
||||
desc "Bump the version"
|
||||
task bump: :environment do
|
||||
puts "Current version: #{Retrospring::Version}"
|
||||
current_ymd = %i[year month day].map { Retrospring::Version.public_send(_1) }
|
||||
|
||||
now = Time.now.utc
|
||||
today_ymd = %i[year month day].map { now.public_send(_1) }
|
||||
|
||||
version_path = Rails.root.join("lib/version.rb")
|
||||
version_contents = File.read(version_path)
|
||||
|
||||
patch_contents = lambda do |key, val|
|
||||
version_contents.sub!(/def #{key} = .+/) { "def #{key} = #{val}" }
|
||||
end
|
||||
|
||||
if current_ymd == today_ymd
|
||||
# bump the patch version
|
||||
patch_contents[:patch, Retrospring::Version.patch + 1]
|
||||
else
|
||||
# set year/month/day to today, and reset patch to 0
|
||||
%i[year month day].each { patch_contents[_1, now.public_send(_1)] }
|
||||
patch_contents[:patch, 0]
|
||||
end
|
||||
|
||||
# write the file
|
||||
File.write(version_path, version_contents)
|
||||
|
||||
# reload the version file
|
||||
load version_path
|
||||
puts "New version: #{Retrospring::Version}"
|
||||
end
|
||||
|
||||
desc "Commit and tag a new release"
|
||||
task commit: :environment do
|
||||
version_path = Rails.root.join("lib/version.rb")
|
||||
|
||||
puts "Committing version"
|
||||
sh %(git commit -m 'Bump version to #{Retrospring::Version}' -- #{version_path.to_s.inspect})
|
||||
|
||||
puts "Tagging new release"
|
||||
sh %(git tag -a -m 'Bump version to #{Retrospring::Version}' #{Retrospring::Version})
|
||||
end
|
||||
|
||||
desc "Update the version (bump + commit)"
|
||||
task update: %i[bump commit]
|
||||
end
|
|
@ -13,36 +13,20 @@ module Retrospring
|
|||
module Version
|
||||
module_function
|
||||
|
||||
def year
|
||||
2022
|
||||
end
|
||||
def year = 2022
|
||||
|
||||
def month
|
||||
7
|
||||
end
|
||||
def month = 7
|
||||
|
||||
def day
|
||||
23
|
||||
end
|
||||
def day = 23
|
||||
|
||||
def patch
|
||||
0
|
||||
end
|
||||
def patch = 0
|
||||
|
||||
def suffix
|
||||
""
|
||||
end
|
||||
def suffix = ""
|
||||
|
||||
def minor
|
||||
[month.to_s.rjust(2, "0"), day.to_s.rjust(2, "0")].join
|
||||
end
|
||||
def minor = [month.to_s.rjust(2, "0"), day.to_s.rjust(2, "0")].join
|
||||
|
||||
def to_a
|
||||
[year.to_s, minor, patch.to_s]
|
||||
end
|
||||
def to_a = [year.to_s, minor, patch.to_s]
|
||||
|
||||
def to_s
|
||||
[to_a.join("."), suffix].join
|
||||
end
|
||||
def to_s = [to_a.join("."), suffix].join
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue