Sha256: 8e9c7b269f30ee1111f5b582c07c8d69ce639e2964eff8758a8393ca4ef17718

Contents?: true

Size: 468 Bytes

Versions: 1

Compression:

Stored size: 468 Bytes

Contents

# frozen_string_literal: true

module Gemsmith
  module Gems
    # Loads a gem's specification.
    class Loader
      def self.call(path, ...) = new(...).call path

      def initialize client: ::Gem::Specification, presenter: Gems::Presenter
        @client = client
        @presenter = presenter
      end

      def call(path) = client.load(path.to_s).then { |record| presenter.new record }

      private

      attr_reader :client, :presenter
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gemsmith-16.0.0 lib/gemsmith/gems/loader.rb