Sha256: f8d91e73775c48b3f31f40d40e4da8269491d7bcdb034d1578c539c28a05f8f7
Contents?: true
Size: 1.68 KB
Versions: 6
Compression:
Stored size: 1.68 KB
Contents
module RakeRoll class Versioning attr_reader :current_version def initialize(current_version) @current_version = validate_current_version(current_version) end def pre if nums = current_version.dup pre_letter = nums[-1].scan(/\D/).first if pre_letter next_letter = pre_letter.next nums[-1].gsub!(pre_letter, next_letter) else nums[-1] = nums[-1] + "a" end nums.join(".") end end def revision if nums = current_version.dup last_number = nums[-1].scan(/\d+/).first.to_i last_number = last_number + 1 nums[-1] = last_number nums.join(".") end end def bump_example if nums = current_version.dup last_number = nums[-1].scan(/\d+/).first.to_i last_number = last_number + 5 nums[-1] = last_number nums.join(".") end end def minor if nums = current_version.dup minor_number = nums[1].scan(/\d+/).first.to_i minor_number = minor_number + 1 nums[1] = minor_number.to_s nums.last.gsub!(/\D/, "") nums[-1] = "0" if nums.length == 3 nums.join(".") end end def major if nums = current_version.dup major_number = nums[0].scan(/\d+/).first.to_i major_number = major_number + 1 nums[0] = major_number nums[-1] = "0" nums[-2] = "0" if nums.length == 3 nums.join(".") end end def next 'NEXT' end private def validate_current_version(current) splits = current.split(".") splits.size < 2 || splits.size > 3 ? false : splits end end end
Version data entries
6 entries across 6 versions & 1 rubygems