class FeduxOrgStdlib::Rake::VersionBumpTask
Version Bump Task
@example Create new version task for bumping the major number X.0.0
FeduxOrgStdlib::Rake::VersionBumpTask.new( name: 'version:bump:major', description: 'Bump major version part' ) { |t| t.bump_version :major }
@example Create new version task for bumping the minor number 0.X.0
FeduxOrgStdlib::Rake::VersionBumpTask.new( name: 'version:bump:minor', description: 'Bump minor version part' ) { |t| t.bump_version :minor }
@example Create new version task for bumping the tiny number 0.0.X
FeduxOrgStdlib::Rake::VersionBumpTask.new( name: 'version:bump:tiny', description: 'Bump tiny version part' ) { |t| t.bump_version :tiny }
@see Rakefile
Public Instance Methods
bump_version(type)
click to toggle source
@private
# File lib/fedux_org_stdlib/rake/version_bump_task.rb, line 33 def bump_version(type) version_update do |file| file.bump(type) end end
version(new_version)
click to toggle source
@private
# File lib/fedux_org_stdlib/rake/version_bump_task.rb, line 40 def version(new_version) fail Exception, "You need to define a version via \"VERSION=<version>\" or \"version=<version>\"." if new_version.blank? begin version_update do |file| file.version = new_version end rescue StandardError => e logger.fatal("Nothing has changed since your last commit or has been added to the index. Therefor nothing needs to be commited: #{e.message}.") end end
Private Instance Methods
add_to_repo(file, version)
click to toggle source
# File lib/fedux_org_stdlib/rake/version_bump_task.rb, line 54 def add_to_repo(file, version) logger.info('Adding new version file to repository.') sh "git add #{file}" # sh 'git add Gemfile.lock' if File.exist? 'Gemfile.lock' sh "git commit -m 'Version bump to #{version}'" end
version_update(&block)
click to toggle source
# File lib/fedux_org_stdlib/rake/version_bump_task.rb, line 62 def version_update(&block) file = FeduxOrgStdlib::VersionManagement::RubygemVersionFile.read(version_file) old_version = file.version block.call(file) new_version = file.version file.write(version_file) logger.info("Updated version. It was \"#{old_version}\". It is now \"#{new_version}\".") add_to_repo(version_file, file.version) end