Class: Chef::MinimalCookbookVersion

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/chef/cookbook_version.rb

Overview

Chef::MinimalCookbookVersion

MinimalCookbookVersion is a duck type of CookbookVersion, used internally by Chef Server as an optimization when determining the optimal cookbook set for a chef-client.

MinimalCookbookVersion objects contain only enough information to solve the cookbook collection for a given run list. They *do not* contain enough information to generate the response.

See also: Chef::CookbookVersionSelector

Constant Summary collapse

ID =
"id".freeze
NAME =
'name'.freeze
KEY =
'key'.freeze
VERSION =
'version'.freeze
VALUE =
'value'.freeze
DEPS =
'deps'.freeze
DEPENDENCIES =
'dependencies'.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ MinimalCookbookVersion

Returns a new instance of MinimalCookbookVersion.



60
61
62
63
64
# File 'lib/chef/cookbook_version.rb', line 60

def initialize(params)
  @name = params[KEY]
  @version = params[VALUE][VERSION]
  @deps    = params[VALUE][DEPS]
end

Instance Attribute Details

#depsObject (readonly)

Returns the value of attribute deps.



58
59
60
# File 'lib/chef/cookbook_version.rb', line 58

def deps
  @deps
end

#nameObject (readonly)

Returns the value of attribute name.



56
57
58
# File 'lib/chef/cookbook_version.rb', line 56

def name
  @name
end

#versionObject (readonly)

Returns the value of attribute version.



57
58
59
# File 'lib/chef/cookbook_version.rb', line 57

def version
  @version
end

Instance Method Details

#<=>(o) ⇒ Object



76
77
78
79
80
# File 'lib/chef/cookbook_version.rb', line 76

def <=>(o)
  raise Chef::Exceptions::CookbookVersionNameMismatch if self.name != o.name
  raise "Unexpected comparison to #{o}" unless o.respond_to?(:legit_version)
  legit_version <=> o.legit_version
end

#legit_versionObject



72
73
74
# File 'lib/chef/cookbook_version.rb', line 72

def legit_version
  @legit_version ||= Chef::Version.new(@version)
end

#metadataObject

Returns the Cookbook::MinimalMetadata object for this cookbook version.



68
69
70
# File 'lib/chef/cookbook_version.rb', line 68

def 
  @metadata ||= Cookbook::MinimalMetadata.new(@name, DEPENDENCIES => @deps)
end