class Chef::Sugar::Constraints::Constraint

This class is a wrapper around a version requirement that adds a nice DSL for comparing constraints:

@example Comparing a single constraint

Constraint.new('~> 1.2.3').satisfied_by?('1.2.7')

@example Comparing multiple constraints

Constraint.new('> 1.2.3', '< 2.0.0').satisfied_by?('1.2.7')

Public Class Methods

new(*constraints) click to toggle source

Create a new constraint object.

@param [String, Array<String>] constraints

the list of constraints
# File lib/chef/sugar/constraints.rb, line 37
def initialize(*constraints)
  @requirement = Gem::Requirement.new(*constraints)
end

Public Instance Methods

satisfied_by?(version) click to toggle source

Determine if the given version string is satisfied by this constraint or group of constraints.

@example Given a satisified constraint

Constraint.new('~> 1.2.0').satisfied_by?('1.2.5') #=> true

@example Given an unsatisfied constraint

Constraint.new('~> 1.2.0').satisfied_by?('2.0.0') #=> false

@param [String] version

the version to compare

@return [Boolean]

true if the constraint is satisfied, false otherwise
# File lib/chef/sugar/constraints.rb, line 58
def satisfied_by?(version)
  @requirement.satisfied_by?(Gem::Version.new(version))
end