Sha256: 3833662e1f1110c1f948948de1b32bb67282553dc783cf9bca5800977bb9d0ec

Contents?: true

Size: 1.1 KB

Versions: 5

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

require "dry/monads"
require "milestoner"

module Gemsmith
  module Tools
    # Versions (tags) current project (local and remote).
    class Versioner
      include Dry::Monads[:result]

      def initialize client: Milestoner::Tags::Publisher.new,
                     content: Milestoner::Configuration::Content,
                     container: Container
        @client = client
        @content = content
        @container = container
      end

      def call specification
        client.call settings(specification)
        Success specification
      rescue Milestoner::Error => error
        Failure error.message
      end

      private

      attr_reader :client, :content, :container

      def settings specification
        content[
          documentation_format: configuration.extensions_milestoner_documentation_format,
          prefixes: configuration.extensions_milestoner_prefixes,
          sign: configuration.extensions_milestoner_sign,
          version: specification.version
        ]
      end

      def configuration = container[__method__]
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gemsmith-17.0.1 lib/gemsmith/tools/versioner.rb
gemsmith-17.0.0 lib/gemsmith/tools/versioner.rb
gemsmith-16.2.0 lib/gemsmith/tools/versioner.rb
gemsmith-16.1.0 lib/gemsmith/tools/versioner.rb
gemsmith-16.0.0 lib/gemsmith/tools/versioner.rb