-
# frozen_string_literal: true
-
-
1
require "core"
-
1
require "forwardable"
-
1
require "refinements/array"
-
1
require "refinements/pathname"
-
1
require "refinements/string"
-
1
require "versionaire"
-
-
1
module Spek
-
# Enhances the default Ruby Gems specification.
-
1
class Presenter
-
1
extend Forwardable
-
-
1
using Refinements::Array
-
1
using Refinements::String
-
1
using Refinements::Pathname
-
1
using Versionaire::Cast
-
-
1
delegate %i[
-
bindir
-
executables
-
extra_rdoc_files
-
files
-
license
-
metadata
-
name
-
platform
-
require_paths
-
required_ruby_version
-
runtime_dependencies
-
summary
-
] => :record
-
-
1
def self.with_default record = nil, model: Gem::Specification
-
16
then: 14
else: 2
record && record.is_a?(model) ? new(record) : new(model.new)
-
end
-
-
1
def initialize record
-
87
@record = record
-
end
-
-
1
def allowed_push_host = metadata.fetch "allowed_push_host", ::Gem::DEFAULT_HOST
-
-
1
def allowed_push_key = metadata.fetch "allowed_push_key", "rubygems_api_key"
-
-
1
def authors = Array record.author
-
-
1
def banner(delimiter: ": ") = [labeled_version, summary].tap(&:compress!).join delimiter
-
-
2
def certificate_chain = Array(record.cert_chain).map { |path| Pathname path.to_s }
-
-
1
def documentation_url = metadata.fetch "documentation_uri", Core::EMPTY_STRING
-
-
1
def emails = Array record.email
-
-
1
def funding_url = metadata.fetch "funding_uri", Core::EMPTY_STRING
-
-
1
def homepage_url = String record.homepage
-
-
1
def issues_url = metadata.fetch "bug_tracker_uri", Core::EMPTY_STRING
-
-
1
def label = metadata.fetch "label", Core::EMPTY_STRING
-
-
1
def labeled_summary(delimiter: ": ") = [label, summary].tap(&:compress!).join delimiter
-
-
1
def labeled_version = [label, version].tap(&:compress!).join " "
-
-
1
def named_version = [name, version].tap(&:compress!).join " "
-
-
1
def package_name = %(#{[name, version].tap(&:compress!).join "-"}.gem)
-
-
1
def package_path = Pathname("tmp").join package_name
-
-
1
def rubygems_mfa? = metadata.fetch("rubygems_mfa_required", "false").truthy?
-
-
1
def signing_key = Pathname record.signing_key.to_s
-
-
1
def source_path = Pathname record.full_gem_path
-
-
1
def source_url = metadata.fetch "source_code_uri", Core::EMPTY_STRING
-
-
1
def version = Version record.version.to_s
-
-
1
def versions_url = metadata.fetch "changelog_uri", Core::EMPTY_STRING
-
-
1
private
-
-
1
attr_reader :record
-
end
-
end