class Chef::VERSION_CLASS
Attributes
major[R]
minor[R]
patch[R]
Public Class Methods
new(str="")
click to toggle source
# File lib/chef/version_class.rb, line 23 def initialize(str="") parse(str) end
Public Instance Methods
<=>(v)
click to toggle source
# File lib/chef/version_class.rb, line 35 def <=>(v) [:major, :minor, :patch].each do |method| ans = (self.send(method) <=> v.send(method)) return ans if ans != 0 end 0 end
eql?(other)
click to toggle source
For hash
# File lib/chef/version_class.rb, line 50 def eql?(other) other.is_a?(Version) && self == other end
hash()
click to toggle source
# File lib/chef/version_class.rb, line 43 def hash # Didn't put any thought or research into this, probably can be # done better to_s.hash end
inspect()
click to toggle source
# File lib/chef/version_class.rb, line 27 def inspect "#{@major}.#{@minor}.#{@patch}" end
to_s()
click to toggle source
# File lib/chef/version_class.rb, line 31 def to_s "#{@major}.#{@minor}.#{@patch}" end
Protected Instance Methods
parse(str="")
click to toggle source
# File lib/chef/version_class.rb, line 56 def parse(str="") @major, @minor, @patch = case str.to_s when /^(\d+)\.(\d+)\.(\d+)$/ [ $1.to_i, $2.to_i, $3.to_i ] when /^(\d+)\.(\d+)$/ [ $1.to_i, $2.to_i, 0 ] else msg = "'#{str.to_s}' does not match 'x.y.z' or 'x.y'" raise Chef::Exceptions::InvalidCookbookVersion.new( msg ) end end