Class: Bosh::Director::NextRebaseVersion

Inherits:
Object
  • Object
show all
Defined in:
lib/bosh/director/next_rebase_version.rb

Instance Method Summary collapse

Constructor Details

#initialize(existing_versions) ⇒ NextRebaseVersion

Returns a new instance of NextRebaseVersion.



3
4
5
# File 'lib/bosh/director/next_rebase_version.rb', line 3

def initialize(existing_versions)
  @existing_versions = existing_versions
end

Instance Method Details

#calculate(current_version) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/bosh/director/next_rebase_version.rb', line 7

def calculate(current_version)
  current_version = Bosh::Common::VersionNumber.new(current_version)
  versions = @existing_versions.map { |item| Bosh::Common::VersionNumber.new(item.version) }

  return current_version.to_s if current_version.final?

  latest = versions.select { |version|
    version.major == current_version.major
  }.max

  latest ? latest.next_minor.dev.to_s : "#{current_version.major}.1-dev"
end