diff options
author | Claire McQuin <mcquin@users.noreply.github.com> | 2014-08-07 16:31:06 -0700 |
---|---|---|
committer | Claire McQuin <mcquin@users.noreply.github.com> | 2014-08-07 16:31:06 -0700 |
commit | 5453d5596ecf7d4635329ae710a0b91346a29875 (patch) | |
tree | 0203edb3eb5182c453f7ef56c6201da8dbfd5429 /lib/chef | |
parent | c75b8946a5e0b48d02db5254a8c098b851551624 (diff) | |
parent | c92ae8f7a5728d499a9dbbf935bd865589432c18 (diff) | |
download | chef-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.rb | 33 | ||||
-rw-r--r-- | lib/chef/version_constraint.rb | 8 |
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 |