Module: Semverve::VersionChecks

Defined in:
lib/semverve/version_checks.rb

Overview

Registry and check adapters for version-maintenance surfaces.

Defined Under Namespace

Classes: Check, CodeReferences, DocReferences, PackageMetadataCheck, RailsConfigMetadataCheck

Class Method Summary collapse

Class Method Details

.all(extra_checks: []) ⇒ Array<#name>

All checks available to task dispatch and validation.

Parameters:

  • extra_checks (Array<#name>) (defaults to: [])

Returns:

  • (Array<#name>)


30
31
32
33
34
# File 'lib/semverve/version_checks.rb', line 30

def all(extra_checks: [])
  (core_checks.values + extra_checks).each_with_object({}) do |check, checks|
    checks[check.name] = check
  end.values
end

.default_namesArray<Symbol>

Default core version-maintenance surfaces for package projects.

Returns:

  • (Array<Symbol>)


81
82
83
# File 'lib/semverve/version_checks.rb', line 81

def default_names
  [:doc_references, :code_references, :package_metadata]
end

.fetch(name, extra_checks: []) ⇒ #name

Fetches a registered check by name.

Parameters:

  • name (Symbol, String)
  • extra_checks (Array<#name>) (defaults to: [])

Returns:

  • (#name)

Raises:



43
44
45
46
47
48
49
# File 'lib/semverve/version_checks.rb', line 43

def fetch(name, extra_checks: [])
  normalized_name = normalize_name(name)
  check = all(extra_checks: extra_checks).find { |candidate| candidate.name == normalized_name }
  return check if check

  raise Error, unknown_check_message([normalized_name], extra_checks: extra_checks)
end

.names(extra_checks: []) ⇒ Array<Symbol>

Registered check names.

Parameters:

  • extra_checks (Array<#name>) (defaults to: [])

Returns:

  • (Array<Symbol>)


73
74
75
# File 'lib/semverve/version_checks.rb', line 73

def names(extra_checks: [])
  all(extra_checks: extra_checks).map(&:name)
end

.normalize(checks, extra_checks: []) ⇒ Array<Symbol>

Validates and normalizes configured check names.

Parameters:

  • checks (Array<Symbol, String>)
  • extra_checks (Array<#name>) (defaults to: [])

Returns:

  • (Array<Symbol>)

Raises:



58
59
60
61
62
63
64
65
# File 'lib/semverve/version_checks.rb', line 58

def normalize(checks, extra_checks: [])
  normalized_checks = Array(checks).map { |check| normalize_name(check) }
  valid_names = names(extra_checks: extra_checks)
  return normalized_checks if normalized_checks.all? { |check| valid_names.include?(check) }

  invalid_checks = normalized_checks.reject { |check| valid_names.include?(check) }
  raise Error, unknown_check_message(invalid_checks, extra_checks: extra_checks)
end

.register(check) ⇒ #name

Registers a core version check.

Parameters:

  • check (#name)

Returns:

  • (#name)


20
21
22
# File 'lib/semverve/version_checks.rb', line 20

def register(check)
  core_checks[check.name] = check
end