summaryrefslogtreecommitdiff
path: root/lib/chef
diff options
context:
space:
mode:
authorClaire McQuin <mcquin@users.noreply.github.com>2014-08-07 16:31:06 -0700
committerClaire McQuin <mcquin@users.noreply.github.com>2014-08-07 16:31:06 -0700
commit5453d5596ecf7d4635329ae710a0b91346a29875 (patch)
tree0203edb3eb5182c453f7ef56c6201da8dbfd5429 /lib/chef
parentc75b8946a5e0b48d02db5254a8c098b851551624 (diff)
parentc92ae8f7a5728d499a9dbbf935bd865589432c18 (diff)
downloadchef-5453d5596ecf7d4635329ae710a0b91346a29875.tar.gz
Merge pull request #1638 from bcobb/version-constraint-string-reflects-behavior
Chef::VersionConstraint#to_s should accurately reflect the constraint's behavior
Diffstat (limited to 'lib/chef')
-rw-r--r--lib/chef/cookbook/metadata.rb33
-rw-r--r--lib/chef/version_constraint.rb8
2 files changed, 18 insertions, 23 deletions
diff --git a/lib/chef/cookbook/metadata.rb b/lib/chef/cookbook/metadata.rb
index 7da1ae70de..32574c75e2 100644
--- a/lib/chef/cookbook/metadata.rb
+++ b/lib/chef/cookbook/metadata.rb
@@ -242,8 +242,8 @@ class Chef
# versions<Array>:: Returns the list of versions for the platform
def supports(platform, *version_args)
version = new_args_format(:supports, platform, version_args)
- normalized_version = normalize_version_constraint(:supports, platform, version)
- @platforms[platform] = normalized_version
+ constraint = validate_version_constraint(:supports, platform, version)
+ @platforms[platform] = constraint.to_s
@platforms[platform]
end
@@ -259,8 +259,8 @@ class Chef
# versions<Array>:: Returns the list of versions for the platform
def depends(cookbook, *version_args)
version = new_args_format(:depends, cookbook, version_args)
- normalized_version = normalize_version_constraint(:depends, cookbook, version)
- @dependencies[cookbook] = normalized_version
+ constraint = validate_version_constraint(:depends, cookbook, version)
+ @dependencies[cookbook] = constraint.to_s
@dependencies[cookbook]
end
@@ -276,8 +276,8 @@ class Chef
# versions<Array>:: Returns the list of versions for the platform
def recommends(cookbook, *version_args)
version = new_args_format(:recommends, cookbook, version_args)
- normalized_version = normalize_version_constraint(:recommends, cookbook, version)
- @recommendations[cookbook] = normalized_version
+ constraint = validate_version_constraint(:recommends, cookbook, version)
+ @recommendations[cookbook] = constraint.to_s
@recommendations[cookbook]
end
@@ -293,8 +293,8 @@ class Chef
# versions<Array>:: Returns the list of versions for the platform
def suggests(cookbook, *version_args)
version = new_args_format(:suggests, cookbook, version_args)
- normalized_version = normalize_version_constraint(:suggests, cookbook, version)
- @suggestions[cookbook] = normalized_version
+ constraint = validate_version_constraint(:suggests, cookbook, version)
+ @suggestions[cookbook] = constraint.to_s
@suggestions[cookbook]
end
@@ -310,8 +310,8 @@ class Chef
# versions<Array>:: Returns the list of versions for the platform
def conflicts(cookbook, *version_args)
version = new_args_format(:conflicts, cookbook, version_args)
- normalized_version = normalize_version_constraint(:conflicts, cookbook, version)
- @conflicting[cookbook] = normalized_version
+ constraint = validate_version_constraint(:conflicts, cookbook, version)
+ @conflicting[cookbook] = constraint.to_s
@conflicting[cookbook]
end
@@ -331,8 +331,8 @@ class Chef
# versions<Array>:: Returns the list of versions for the platform
def provides(cookbook, *version_args)
version = new_args_format(:provides, cookbook, version_args)
- normalized_version = normalize_version_constraint(:provides, cookbook, version)
- @providing[cookbook] = normalized_version
+ constraint = validate_version_constraint(:provides, cookbook, version)
+ @providing[cookbook] = constraint.to_s
@providing[cookbook]
end
@@ -347,8 +347,8 @@ class Chef
# versions<Array>:: Returns the list of versions for the platform
def replaces(cookbook, *version_args)
version = new_args_format(:replaces, cookbook, version_args)
- normalized_version = normalize_version_constraint(:replaces, cookbook, version)
- @replacing[cookbook] = normalized_version
+ constraint = validate_version_constraint(:replaces, cookbook, version)
+ @replacing[cookbook] = constraint.to_s
@replacing[cookbook]
end
@@ -533,11 +533,6 @@ INVALID
raise Exceptions::InvalidVersionConstraint, msg
end
- def normalize_version_constraint(caller_name, dep_name, constraint_str)
- version_constraint = validate_version_constraint(caller_name, dep_name, constraint_str)
- "#{version_constraint.op} #{version_constraint.raw_version}"
- end
-
# Verify that the given array is an array of strings
#
# Raise an exception if the members of the array are not Strings
diff --git a/lib/chef/version_constraint.rb b/lib/chef/version_constraint.rb
index 7bfde41e74..a78e32e94f 100644
--- a/lib/chef/version_constraint.rb
+++ b/lib/chef/version_constraint.rb
@@ -24,7 +24,7 @@ class Chef
PATTERN = /^(#{OPS.join('|')}) *([0-9].*)$/
VERSION_CLASS = Chef::Version
- attr_reader :op, :version, :raw_version
+ attr_reader :op, :version
def initialize(constraint_spec=DEFAULT_CONSTRAINT)
case constraint_spec
@@ -50,11 +50,11 @@ class Chef
end
def inspect
- "(#{@op} #{@version})"
+ "(#{to_s})"
end
def to_s
- "#{@op} #{@version}"
+ "#{@op} #{@raw_version}"
end
def eql?(o)
@@ -106,7 +106,7 @@ class Chef
@op = $1
@raw_version = $2
@version = self.class::VERSION_CLASS.new(@raw_version)
- if raw_version.split('.').size <= 2
+ if @raw_version.split('.').size <= 2
@missing_patch_level = true
end
else