class VersionFile
Attributes
file_name[R]
Public Class Methods
new(file_name = "VERSION")
click to toggle source
# File lib/mark_version/version_file.rb, line 4 def initialize(file_name = "VERSION") @file_name = "#{file_name}" end
Public Instance Methods
current_major_version()
click to toggle source
# File lib/mark_version/version_file.rb, line 106 def current_major_version version_as_array[0] end
current_minor_version()
click to toggle source
# File lib/mark_version/version_file.rb, line 102 def current_minor_version version_as_array[1] end
current_patch_version()
click to toggle source
# File lib/mark_version/version_file.rb, line 94 def current_patch_version if version.include?('RC') version_as_array[2].split('-')[0] else version_as_array[2] end end
dev_version()
click to toggle source
# File lib/mark_version/version_file.rb, line 32 def dev_version return "#{version}.#{Git.branch}+#{Git.ahead_of_release_by}" unless Git.on_release_branch? return "#{version}+#{Git.current_ahead_by}" if Git.current_ahead_of_version? version end
file_exists?()
click to toggle source
# File lib/mark_version/version_file.rb, line 18 def file_exists? File.file?(file_name) end
increment_release_candidate()
click to toggle source
# File lib/mark_version/version_file.rb, line 84 def increment_release_candidate fail 'Cannot increment the release candidate version on a non release candidate.' unless release_candidate? write("#{short_version}-RC#{next_release_candidate}") end
init()
click to toggle source
# File lib/mark_version/version_file.rb, line 8 def init fail 'Project already initialized.' if file_exists? @version_file = open(file_name, 'w') @version_file.rewind @version_file.puts('0.0.0') @version_file.rewind @version_file.close version end
major()
click to toggle source
# File lib/mark_version/version_file.rb, line 62 def major fail 'Cannot major increment a release candidate, it needs to be released first.' if release_candidate? version = version_as_array version[2] = '0' version[1] = '0' version[0] = (version[0].to_i + 1).to_s write(version.join('.')) end
major_release_candidate()
click to toggle source
# File lib/mark_version/version_file.rb, line 78 def major_release_candidate fail 'Cannot make a releae candidate out of a release candidate. To increment to the next release candidate, invoke "increment_release_candidate".' if release_candidate? major write("#{version}-RC1") end
minor()
click to toggle source
# File lib/mark_version/version_file.rb, line 53 def minor fail 'Cannot minor increment a release candidate, it needs to be released first.' if release_candidate? version = version_as_array version[2] = '0' version[1] = (version[1].to_i + 1).to_s write(version.join('.')) end
minor_release_candidate()
click to toggle source
# File lib/mark_version/version_file.rb, line 72 def minor_release_candidate fail 'Cannot make a releae candidate out of a release candidate. To increment to the next release candidate, invoke "increment_release_candidate".' if release_candidate? minor write("#{short_version}-RC1") end
patch()
click to toggle source
# File lib/mark_version/version_file.rb, line 45 def patch fail 'Cannot patch a release candidate, it needs to be released first.' if release_candidate? version = version_as_array version[2] = (version[2].to_i + 1).to_s write(version.join('.')) end
release()
click to toggle source
# File lib/mark_version/version_file.rb, line 89 def release fail 'Cannot release a non release candidate.' unless release_candidate? write(short_version) end
release_candidate?()
click to toggle source
# File lib/mark_version/version_file.rb, line 114 def release_candidate? version.include?('RC') end
release_candidate_iteration()
click to toggle source
# File lib/mark_version/version_file.rb, line 110 def release_candidate_iteration version.split('RC')[1].to_s end
short_version()
click to toggle source
# File lib/mark_version/version_file.rb, line 39 def short_version return version unless release_candidate? version.split('-')[0] end
version()
click to toggle source
# File lib/mark_version/version_file.rb, line 22 def version fail "Version file '#{file_name}' does not exist." unless file_exists? @version_file = open(file_name, 'r+') version = @version_file.readline.chomp @version_file.close version end
Private Instance Methods
next_release_candidate()
click to toggle source
# File lib/mark_version/version_file.rb, line 124 def next_release_candidate return 1 unless release_candidate? release_candidate_iteration.to_i + 1 end
version_as_array()
click to toggle source
# File lib/mark_version/version_file.rb, line 120 def version_as_array version.split('.') end
write(version)
click to toggle source
# File lib/mark_version/version_file.rb, line 130 def write(version) fail "Version file '#{file_name}' does not exist." unless file_exists? @version_file = open(file_name, 'r+') @version_file.puts(version) @version_file.close version end