Sha256: ff09630f2cbbb8c82a1989f2aa764c691f324b4f519ba1370e636a95bc480bef
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
module Semmy module VersionString extend self class SuffixNotFound < Error; end class UnexpectedSuffix < Error; end class NoPreviousMinor < Error; end def remove_suffix(version, suffix) new_version = version.dup unless new_version.gsub!(/.#{suffix}$/, '') fail(SuffixNotFound, "Suffix #{suffix} not found in #{version}") end new_version end def bump_minor(version, suffix) components = version.split('.') unless components.last =~ /^[0-9]+$/ fail(UnexpectedSuffix, "Expected a version without suffix, found #{version}.") end components.map!(&:to_i) components[1] += 1 components << suffix components.join('.') end def previous_minor(version) components = version.split('.').map(&:to_i) if components[1] == 0 fail(NoPreviousMinor, "Cannot get previous minor of #{version}.") end components[1] -= 1 components.join('.') end def minor_only(version) version.split('.')[0..1].join('.') end def components(version) components = version.split('.') { major: components[0], minor: components[1], patch: components[2] } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
semmy-0.2.0 | lib/semmy/version_string.rb |
semmy-0.1.0 | lib/semmy/version_string.rb |