class Rspec::PendingFor::Build

SRP: Describe the RubyEngine and/or RubyVersion(s) that will be pended or skipped and with what message

def current_matches_specified?

def current_matches_specified?
  !message.nil?
end

def engine_specified_and_relevant

def engine_specified_and_relevant
  if relevant_versions.empty?
    # No versions specified means ALL versions for this engine
    reason || "#{BROKEN_STRING} #{BUG_STRING} #{INTERPRETER_MATRIX[relevant_engine]}"
  elsif relevant_versions.include?(RubyVersion.to_s)
    reason || %[#{RELEVANT_VERSIONS_PROC.call(relevant_versions)} (#{INTERPRETER_MATRIX[relevant_engine]})]
  end
end

def initialize(options = {})

def initialize(options = {})
  @relevant_versions = Array(options[:versions]) # cast to array
  @relevant_engine = options[:engine].nil? ? nil : options[:engine].to_s
  @reason = options[:reason]
  warn_about_unrecognized_engine
  # If engine is nil, then any matching versions should be pended
  @message = if @relevant_engine.nil?
    no_engine_specified
  elsif RubyEngine.is?(@relevant_engine)
    engine_specified_and_relevant
  end
end

def no_engine_specified

def no_engine_specified
  reason || RELEVANT_VERSIONS_PROC.call(relevant_versions) if relevant_versions.include?(RubyVersion.to_s)
end

def warn_about_unrecognized_engine

def warn_about_unrecognized_engine
  return false if relevant_engine.nil? || !INTERPRETER_MATRIX[relevant_engine].nil?
  warn(%[
 specified (#{relevant_engine}) is not known to rspec-pending_for.
is a real RUBY_ENGINE, please report as a bug to #{ISSUES_LINK}
end