Class: Puppet::Util::Package::Version::Pip
- Inherits:
-
Object
- Object
- Puppet::Util::Package::Version::Pip
show all
- Includes:
- Comparable
- Defined in:
- lib/puppet/util/package/version/pip.rb
Defined Under Namespace
Classes: ValidationFailure
Constant Summary
collapse
- VERSION_PATTERN =
"
v?
(?:
(?:(?<epoch>[0-9]+)!)? # epoch
(?<release>[0-9]+(?:\\.[0-9]+)*) # release segment
(?<pre> # pre-release
[-_\\.]?
(?<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
[-_\\.]?
(?<pre_n>[0-9]+)?
)?
(?<post> # post release
(?:-(?<post_n1>[0-9]+))
|
(?:
[-_\\.]?
(?<post_l>post|rev|r)
[-_\\.]?
(?<post_n2>[0-9]+)?
)
)?
(?<dev> # dev release
[-_\\.]?
(?<dev_l>dev)
[-_\\.]?
(?<dev_n>[0-9]+)?
)?
)
(?:\\+(?<local>[a-z0-9]+(?:[-_\\.][a-z0-9]+)*))? # local version
"
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
Returns the value of attribute key.
79
80
81
|
# File 'lib/puppet/util/package/version/pip.rb', line 79
def key
@key
end
|
Class Method Details
.compare(version_a, version_b) ⇒ Object
47
48
49
50
51
52
|
# File 'lib/puppet/util/package/version/pip.rb', line 47
def self.compare(version_a, version_b)
version_a = parse(version_a) unless version_a.is_a?(self)
version_b = parse(version_b) unless version_b.is_a?(self)
version_a <=> version_b
end
|
.parse(version) ⇒ Object
38
39
40
41
42
43
44
45
|
# File 'lib/puppet/util/package/version/pip.rb', line 38
def self.parse(version)
raise ValidationFailure, version.to_s unless version.is_a? String
matched = version.match(Regexp.new("^\\s*" + VERSION_PATTERN + "\\s*$", Regexp::EXTENDED | Regexp::MULTILINE | Regexp::IGNORECASE))
raise ValidationFailure, version unless matched
new(matched)
end
|
Instance Method Details
#<=>(other) ⇒ Object
73
74
75
76
77
|
# File 'lib/puppet/util/package/version/pip.rb', line 73
def <=>(other)
raise ValidationFailure, other.to_s unless other.is_a?(self.class)
compare(key, other.key)
end
|
#eql?(other) ⇒ Boolean
Also known as:
==
68
69
70
|
# File 'lib/puppet/util/package/version/pip.rb', line 68
def eql?(other)
other.is_a?(self.class) && key.eql?(other.key)
end
|
#to_s ⇒ Object
Also known as:
inspect
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/puppet/util/package/version/pip.rb', line 54
def to_s
parts = []
parts.push("#{@epoch_data}!") if @epoch_data && @epoch_data != 0
parts.push(@release_data.join(".")) if @release_data
parts.push(@pre_data.join) if @pre_data
parts.push(".post#{@post_data[1]}") if @post_data
parts.push(".dev#{@dev_data[1]}") if @dev_data
parts.push("+#{@local_data.join('.')}") if @local_data
parts.join
end
|