Sha256: c86e6968eb44f6a3653583607ec2cbc114964ed3e8491fe38e20ef8e13e9e13c

Contents?: true

Size: 1.5 KB

Versions: 3

Compression:

Stored size: 1.5 KB

Contents

# encoding: utf-8
require 'fedux_org_stdlib/version_management/rubygem_version_file'
require 'fedux_org_stdlib/versionable'

module FeduxOrgStdlib
  module Rake
    # Version Bump Task
    #
    # @see Rakefile
    class VersionBumpTask < Task
      include Versionable

      # @private
      def bump_version(type)
        version_update do |file|
          file.bump(type) 
        end
      end

      # @private
      def set_version(new_version)
        raise 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

      def add_to_repo(file, version)
        logger.info('Adding new version file to repository.')

        sh "git add #{file}"
        sh "git commit -m 'Version bump to #{version}'"
      end


      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
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fedux_org-stdlib-0.6.5 lib/fedux_org_stdlib/rake/version_bump_task.rb
fedux_org-stdlib-0.6.4 lib/fedux_org_stdlib/rake/version_bump_task.rb
fedux_org-stdlib-0.6.3 lib/fedux_org_stdlib/rake/version_bump_task.rb