Class: Bosh::Common::Version::ReleaseVersionList

Inherits:
VersionList
  • Object
show all
Defined in:
lib/common/version/release_version_list.rb

Instance Attribute Summary

Attributes inherited from VersionList

#versions

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from VersionList

#each, #initialize, #latest_with_pre_release, #latest_with_release

Constructor Details

This class inherits a constructor from Bosh::Common::Version::VersionList

Class Method Details

.parse(versions) ⇒ Object

Parameters:

  • Collection (Array<#version>)

    of version strings

  • Version (class)

    type to parse as (ex: SemiSemantic::Version, ReleaseVersion, StemcellVersion, BoshVersion)



9
10
11
# File 'lib/common/version/release_version_list.rb', line 9

def self.parse(versions)
  self.new(VersionList.parse(versions, ReleaseVersion))
end

Instance Method Details

#rebase(version) ⇒ Object

Parameters:

  • ReleaseVersion (#version)

    from which to rebase the post-release segment

Raises:

  • (TypeError)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/common/version/release_version_list.rb', line 14

def rebase(version)
  raise TypeError, "Failed to Rebase - Invalid Version Type: #{version.class}" unless version.is_a?(ReleaseVersion)

  # Can only rebase versions with a post-release segment
  if version.version.post_release.nil?
    raise ArgumentError, "Failed to Rebase - Invalid Version: #{version.inspect}"
  end

  latest = latest_with_pre_release(version)
  if latest
    if latest.version.post_release.nil?
      latest.default_post_release
    else
      latest.increment_post_release
    end
  else
    version.default_post_release
  end
end