Sha256: 9468c09abcbefeaf3976793552ca984069454f8be692ba922e13a432fb6034d3
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
# frozen_string_literal: true class RungerReleaseAssistant::VersionCalculator extend Memoist def initialize(current_version:) @current_version = current_version end # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity def increment_for(type) new_parts = case type when 'major' if modifier.present? && (minor == 0) && (patch == 0) # e.g. going from `2.0.0.alpha` to `2.0.0` [major, minor, patch] else # e.g. going from `2.3.4` to `3.0.0` [major + 1, 0, 0] end when 'minor' if modifier.present? && (patch == 0) # e.g. going from `0.4.0.alpha` to `0.4.0` [major, minor, patch] else # e.g. going from `0.3.3` to `0.4.0` [major, minor + 1, 0] end when 'patch' if modifier.present? # e.g. going from `0.3.3.alpha` to `0.3.3` [major, minor, patch] else # e.g. going from `0.3.3` to `0.3.4` [major, minor, patch + 1] end end new_parts.map(&:to_s).join('.') end # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity private memoize \ def modifier @current_version.split('.')[3] end memoize \ def parts @current_version.split('.').first(3).map { Integer(_1) } end memoize \ def major parts[0] end memoize \ def minor parts[1] end memoize \ def patch parts[2] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
runger_release_assistant-0.4.0 | lib/runger_release_assistant/version_calculator.rb |