Module: PrereleaseHandler
- Included in:
- Describe
- Defined in:
- lib/get/subcommand/describe/prerelease.rb
Overview
Module with methods for managing prerelease updates.
Constant Summary collapse
- FIRST_PRERELEASE =
1
- DEFAULT_PRERELEASE_STRING =
'dev'
- PRERELEASE_PLACEHOLDER =
'(p)'
- @@prerelease_pattern =
"#{DEFAULT_PRERELEASE_STRING}#{PRERELEASE_PLACEHOLDER}"
- @@old_prerelease_pattern =
proc { @@prerelease_pattern }
Class Method Summary collapse
- .compute_prerelease(current_prerelease, need_reset: false) ⇒ Object
- .extract_prerelease_number(current_prerelease) ⇒ Object
Class Method Details
.compute_prerelease(current_prerelease, need_reset: false) ⇒ Object
51 52 53 54 |
# File 'lib/get/subcommand/describe/prerelease.rb', line 51 def compute_prerelease(current_prerelease, need_reset: false) new_prerelease = (need_reset ? FIRST_PRERELEASE : (extract_prerelease_number(current_prerelease) + 1)).to_s @@prerelease_pattern.sub(PRERELEASE_PLACEHOLDER, new_prerelease) end |
.extract_prerelease_number(current_prerelease) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/get/subcommand/describe/prerelease.rb', line 31 def extract_prerelease_number(current_prerelease) actual_old_prerelease_pattern = if @@old_prerelease_pattern.respond_to?('call') @@old_prerelease_pattern.call else @@old_prerelease_pattern end Common.error "The given old pattern does not contains the placeholder '(p)'" unless actual_old_prerelease_pattern.include?(PRERELEASE_PLACEHOLDER) old_prerelease_regex = actual_old_prerelease_pattern.sub(PRERELEASE_PLACEHOLDER, '(\\d+)') begin Regexp.new(old_prerelease_regex).match(current_prerelease)[1].to_i rescue NoMethodError Common.error "The given old prerelease pattern '#{actual_old_prerelease_pattern}' " \ "does not match the analyzed prerelease: '#{current_prerelease}'." end end |