Module: Bootprint::AdvisoryBundleMatcher

Defined in:
lib/bootprint/advisory_bundle_matcher.rb

Class Method Summary collapse

Class Method Details

.normalize_versions(value) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/bootprint/advisory_bundle_matcher.rb', line 9

def normalize_versions(value)
  case value
  when nil then []
  when Array then value.map(&:to_s)
  else [value.to_s]
  end
end

.value_in_set?(value, allowed) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
33
# File 'lib/bootprint/advisory_bundle_matcher.rb', line 27

def value_in_set?(value, allowed)
  case allowed
  when nil then true
  when Array then allowed.any? { |item| values_equal?(value, item) }
  else values_equal?(value, allowed)
  end
end

.values_equal?(left, right) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/bootprint/advisory_bundle_matcher.rb', line 35

def values_equal?(left, right)
  left == right || left.to_s == right.to_s
end

.version_satisfies?(version, constraints) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
25
# File 'lib/bootprint/advisory_bundle_matcher.rb', line 17

def version_satisfies?(version, constraints)
  constraints = normalize_versions(constraints)
  return true if constraints.empty?

  gem_version = Gem::Version.new(version.to_s)
  Gem::Requirement.new(constraints).satisfied_by?(gem_version)
rescue ArgumentError
  false
end