Module: RSMP::Validator::VersionFilter

Defined in:
lib/rsmp/validator/version_filter.rb

Overview

Helpers for filtering tests by RSMP core and SXL version.

Class Method Summary collapse

Class Method Details

.configured_sxl(name = nil) ⇒ Object



27
28
29
30
31
32
# File 'lib/rsmp/validator/version_filter.rb', line 27

def self.configured_sxl(name = nil)
  sxls = RSMP::Validator.config['sxls'] || []
  return sxls.first unless name

  sxls.find { |sxl| sxl['name'] == name.to_s }
end

.core_matches?(requirement) ⇒ Boolean

Check if the configured core version satisfies the given requirement.

Parameters:

  • requirement (String)

    Gem::Requirement-compatible string, e.g. “>= 3.2”

Returns:

  • (Boolean)


15
16
17
# File 'lib/rsmp/validator/version_filter.rb', line 15

def self.core_matches?(requirement)
  version_satisfies?(requirement, RSMP::Validator.config['core_version'])
end

.sxl_matches?(requirement, name: nil) ⇒ Boolean

Check if the configured SXL version satisfies the given requirement.

Parameters:

  • requirement (String)

    Gem::Requirement-compatible string, e.g. “>= 1.0.7”

Returns:

  • (Boolean)


8
9
10
11
# File 'lib/rsmp/validator/version_filter.rb', line 8

def self.sxl_matches?(requirement, name: nil)
  sxl = configured_sxl(name)
  version_satisfies?(requirement, sxl && sxl['version'])
end

.version_satisfies?(requirement, version_str) ⇒ Boolean

Helper that does the version comparison.

Returns:

  • (Boolean)


20
21
22
23
24
25
# File 'lib/rsmp/validator/version_filter.rb', line 20

def self.version_satisfies?(requirement, version_str)
  return false unless version_str

  version = Gem::Version.new(version_str)
  Gem::Requirement.new(requirement).satisfied_by?(version)
end