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, #to_s

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



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

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

Instance Method Details

#rebase(version) ⇒ Object

Parameters:

  • ReleaseVersion (#version)

    from which to rebase the post-release segment

Raises:

  • (TypeError)


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

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