module Semverve::VersionChecks
Registry and check adapters for version-maintenance surfaces.
Public Class Methods
Source
# 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
All checks available to task dispatch and validation.
@param [Array<#name>] extra_checks
@return [Array<#name>]
Source
# File lib/semverve/version_checks.rb, line 81 def default_names [:doc_references, :code_references, :package_metadata] end
Default core version-maintenance surfaces for package projects.
@return [Array<Symbol>]
# 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
Fetches a registered check by name.
@param [Symbol, String] name @param [Array<#name>] extra_checks
@return [#name]
Source
# File lib/semverve/version_checks.rb, line 73 def names(extra_checks: []) all(extra_checks: extra_checks).map(&:name) end
Registered check names.
@param [Array<#name>] extra_checks
@return [Array<Symbol>]
# 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
Validates and normalizes configured check names.
@param [Array<Symbol, String>] checks @param [Array<#name>] extra_checks
@return [Array<Symbol>]
Source
# File lib/semverve/version_checks.rb, line 20 def register(check) core_checks[check.name] = check end
Registers a core version check.
@param [#name] check
@return [#name]