Class: Chef::Version

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/chef/version_class.rb,
lib/chef/version/platform.rb

Direct Known Subclasses

Platform

Defined Under Namespace

Classes: Platform

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(str = "") ⇒ Version

Returns a new instance of Version.



23
24
25
# File 'lib/chef/version_class.rb', line 23

def initialize(str = "")
  parse(str)
end

Instance Attribute Details

#majorObject (readonly)

Returns the value of attribute major.



21
22
23
# File 'lib/chef/version_class.rb', line 21

def major
  @major
end

#minorObject (readonly)

Returns the value of attribute minor.



21
22
23
# File 'lib/chef/version_class.rb', line 21

def minor
  @minor
end

#patchObject (readonly)

Returns the value of attribute patch.



21
22
23
# File 'lib/chef/version_class.rb', line 21

def patch
  @patch
end

Instance Method Details

#<=>(other) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/chef/version_class.rb', line 35

def <=>(other)
  %i{major minor patch}.each do |method|
    version = send(method)
    begin
      ans = (version <=> other.send(method))
    rescue NoMethodError # if the other thing isn't a version object, return nil
      return nil
    end
    return ans unless ans == 0
  end
  0
end

#eql?(other) ⇒ Boolean

For hash

Returns:

  • (Boolean)


55
56
57
# File 'lib/chef/version_class.rb', line 55

def eql?(other)
  other.is_a?(Version) && self == other
end

#hashObject



48
49
50
51
52
# File 'lib/chef/version_class.rb', line 48

def hash
  # Didn't put any thought or research into this, probably can be
  # done better
  to_s.hash
end

#inspectObject



27
28
29
# File 'lib/chef/version_class.rb', line 27

def inspect
  "#{@major}.#{@minor}.#{@patch}"
end

#to_sObject



31
32
33
# File 'lib/chef/version_class.rb', line 31

def to_s
  "#{@major}.#{@minor}.#{@patch}"
end