Module: Kdep::VersionTagger
- Defined in:
- lib/kdep/version_tagger.rb
Class Method Summary collapse
-
.next_tag(tags) ⇒ Object
Given a list of tag strings, finds the highest version and returns the next version string with minor incremented by 1.
-
.parse(tag) ⇒ Object
Parses a “major.minor” version string into [Integer, Integer].
Class Method Details
.next_tag(tags) ⇒ Object
Given a list of tag strings, finds the highest version and returns the next version string with minor incremented by 1. Returns “0.1” when no valid version tags exist.
19 20 21 22 23 24 25 |
# File 'lib/kdep/version_tagger.rb', line 19 def self.next_tag() versions = .map { |t| parse(t) }.compact return "0.1" if versions.empty? highest = versions.sort_by { |major, minor| [major, minor] }.last "#{highest[0]}.#{highest[1] + 1}" end |
.parse(tag) ⇒ Object
Parses a “major.minor” version string into [Integer, Integer]. Returns nil for invalid or non-version strings.
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/kdep/version_tagger.rb', line 5 def self.parse(tag) parts = tag.split(".", 2) return nil unless parts.length == 2 major = Integer(parts[0]) rescue nil minor = Integer(parts[1]) rescue nil return nil unless major && minor [major, minor] end |