class NuGetVersions::NuGetVersion
Attributes
revision[R]
Public Class Methods
copy_of(version)
click to toggle source
Creates a NuGetVersion
from an existing NuGetVersion
Parameters:
-
version: Version to clone.
# File lib/nuget_versions/nuget_version.rb, line 6 def self.copy_of(version) revision = 0 revision = version.revision if version.respond_to? :revision return NuGetVersion.new(version.major, version.minor, version.patch, revision, version.release_labels, version.metadata) end
new(major, minor, patch, revision = 0, release_labels = nil, metadata = nil)
click to toggle source
Creates a NuGetVersion
X.Y.Z, X.Y.Z-alpha, X.Y.Z-alpha+metadata, W.X.Y.Z, W.X.Y.Z-alpha, W.X.Y.Z-alpha+metadata. Parameters:
-
major: W.x.y.z
-
minor: w.X.y.z
-
patch: w.x.Y.z
-
revision: w.x.y.Z
-
release_labels: Prerelease label
-
metadata: Build metadata
Calls superclass method
# File lib/nuget_versions/nuget_version.rb, line 21 def initialize(major, minor, patch, revision = 0, release_labels = nil, metadata = nil) super(major, minor, patch, release_labels, metadata) @revision = Integer(revision, revision.is_a?(String) ? 10 : 0) end
parse(value)
click to toggle source
# File lib/nuget_versions/nuget_version.rb, line 82 def self.parse(value) ver = self.try_parse(value) raise "Invalid NuGet version value" if ver.nil? ver end
try_parse(value)
click to toggle source
# File lib/nuget_versions/nuget_version.rb, line 89 def self.try_parse(value) return nil if value.nil? value = value.to_s if !value.is_a? String original_value = value return nil if value.empty? value = value.split("+", 2) metadata = (value.length == 2) ? value.last : nil value = value.first.split("-", 2) return nil if value.empty? release_labels = (value.length == 2) ? value.last.split('.') : nil parts = value.first.split(".") return nil if parts.length < 2 || parts.length > 4 return nil if release_labels && !SemanticVersion.try_validate_identifiers(release_labels) return nil if metadata && !SemanticVersion.try_validate_identifier(metadata) begin major = Integer(parts[0], 10) minor = (parts.length >= 2) ? Integer(parts[1], 10) : 0 patch = (parts.length >= 3) ? Integer(parts[2], 10) : 0 revision = (parts.length >= 4) ? Integer(parts[3], 10) : 0 rescue return nil end ver = NuGetVersion.new(major, minor, patch, revision, release_labels, metadata) ver.instance_variable_set("@original_version", original_value) ver.instance_variable_set("@original_release", ver.release) ver end
Public Instance Methods
major=(new_value)
click to toggle source
Calls superclass method
# File lib/nuget_versions/nuget_version.rb, line 29 def major=(new_value) super(new_value) @original_version = nil end
metadata=(new_value)
click to toggle source
Calls superclass method
# File lib/nuget_versions/nuget_version.rb, line 54 def metadata=(new_value) super(new_value) @original_version = nil end
minor=(new_value)
click to toggle source
Calls superclass method
# File lib/nuget_versions/nuget_version.rb, line 34 def minor=(new_value) super(new_value) @original_version = nil end
original_version()
click to toggle source
# File lib/nuget_versions/nuget_version.rb, line 64 def original_version @original_version = nil if !@original_version.nil? && (release != @original_release) @original_version end
patch=(new_value)
click to toggle source
Calls superclass method
# File lib/nuget_versions/nuget_version.rb, line 39 def patch=(new_value) super(new_value) @original_version = nil end
release=(new_value)
click to toggle source
Calls superclass method
# File lib/nuget_versions/nuget_version.rb, line 59 def release=(new_value) super(new_value) @original_version = nil end
release_labels=(new_value)
click to toggle source
Calls superclass method
# File lib/nuget_versions/nuget_version.rb, line 49 def release_labels=(new_value) super(new_value) @original_version = nil end
revision=(new_value)
click to toggle source
# File lib/nuget_versions/nuget_version.rb, line 44 def revision=(new_value) @revision = Integer(new_value, new_value.is_a?(String) ? 10 : 0) @original_version = nil end
to_s()
click to toggle source
# File lib/nuget_versions/nuget_version.rb, line 69 def to_s original_version # Test if the release labels array has been mutated return @original_version if !@original_version.nil? && !@original_version.empty? version = "#{@major}.#{@minor}.#{@patch}" version += ".#{@revision}" if revision != 0 version += "-#{release}" if is_prerelease? version += "+#{metadata}" if has_metadata? version end