diff options
-rw-r--r-- | chef-zero.gemspec | 1 | ||||
-rw-r--r-- | lib/chef_zero.rb | 2 | ||||
-rw-r--r-- | lib/chef_zero/endpoints/cookbook_endpoint.rb | 2 | ||||
-rw-r--r-- | lib/chef_zero/endpoints/cookbook_version_endpoint.rb | 2 | ||||
-rw-r--r-- | lib/chef_zero/endpoints/cookbooks_base.rb | 9 | ||||
-rw-r--r-- | lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb | 9 |
6 files changed, 11 insertions, 14 deletions
diff --git a/chef-zero.gemspec b/chef-zero.gemspec index 224ea6d..6f030a2 100644 --- a/chef-zero.gemspec +++ b/chef-zero.gemspec @@ -16,6 +16,7 @@ Gem::Specification.new do |s| s.add_dependency 'chef' # For version, version constraint and deep merge s.add_dependency 'thin' # webrick DOES NOT FREAKING WORK s.add_dependency 'mixlib-log', '>= 1.3.0' + s.add_dependency 'solve', '>= 0.4.3' s.bindir = "bin" s.executables = %w( chef-zero ) diff --git a/lib/chef_zero.rb b/lib/chef_zero.rb index 879c4cb..d7acbae 100644 --- a/lib/chef_zero.rb +++ b/lib/chef_zero.rb @@ -1,3 +1,5 @@ +require 'solve' + module ChefZero autoload :Log, 'chef_zero/log' diff --git a/lib/chef_zero/endpoints/cookbook_endpoint.rb b/lib/chef_zero/endpoints/cookbook_endpoint.rb index 9334af7..e8326a7 100644 --- a/lib/chef_zero/endpoints/cookbook_endpoint.rb +++ b/lib/chef_zero/endpoints/cookbook_endpoint.rb @@ -31,7 +31,7 @@ module ChefZero end def latest_version(versions) - sorted = versions.sort_by { |version| Chef::Version.new(version) } + sorted = versions.sort_by { |version| Solve::Version.new(version) } sorted[-1] end end diff --git a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb index 7712fac..27687c8 100644 --- a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb +++ b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb @@ -98,7 +98,7 @@ module ChefZero end def latest_version(versions) - sorted = versions.sort_by { |version| Chef::Version.new(version) } + sorted = versions.sort_by { |version| Solve::Version.new(version) } sorted[-1] end end diff --git a/lib/chef_zero/endpoints/cookbooks_base.rb b/lib/chef_zero/endpoints/cookbooks_base.rb index 53f7945..143a695 100644 --- a/lib/chef_zero/endpoints/cookbooks_base.rb +++ b/lib/chef_zero/endpoints/cookbooks_base.rb @@ -1,7 +1,4 @@ require 'json' -require 'chef/exceptions' # Needed so Chef::Version/VersionConstraint load -require 'chef/version_class' -require 'chef/version_constraint' require 'chef_zero/rest_base' require 'chef_zero/data_normalizer' @@ -28,11 +25,11 @@ module ChefZero def filter_cookbooks(cookbooks_list, constraints = {}, num_versions = nil) cookbooks_list.keys.sort.each do |name| - constraint = Chef::VersionConstraint.new(constraints[name]) + constraint = Solve::Constraint.new(constraints[name]) versions = [] - cookbooks_list[name].keys.sort_by { |version| Chef::Version.new(version) }.reverse.each do |version| + cookbooks_list[name].keys.sort_by { |version| Solve::Version.new(version) }.reverse.each do |version| break if num_versions && versions.size >= num_versions - if constraint.include?(version) + if constraint.satisfies?(version) versions << version end end diff --git a/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb b/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb index 6efa9a0..0a61c83 100644 --- a/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb +++ b/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb @@ -1,7 +1,4 @@ require 'json' -require 'chef/exceptions' # Needed so Chef::Version/VersionConstraint load -require 'chef/version_class' -require 'chef/version_constraint' require 'chef_zero/rest_base' require 'chef_zero/rest_error_response' @@ -100,15 +97,15 @@ module ChefZero end def sort_versions(versions) - result = versions.sort_by { |version| Chef::Version.new(version) } + result = versions.sort_by { |version| Solve::Version.new(version) } result.reverse end def filter_by_constraint(versions, cookbook_name, constraint) return versions if !constraint - constraint = Chef::VersionConstraint.new(constraint) + constraint = Solve::Constraint.new(constraint) new_versions = versions[cookbook_name] - new_versions = new_versions.select { |version| constraint.include?(version) } + new_versions = new_versions.select { |version| constraint.satisfies?(version) } result = versions.clone result[cookbook_name] = new_versions result |