lib/gemsmith/rake/publisher.rb in gemsmith-15.4.0 vs lib/gemsmith/rake/publisher.rb in gemsmith-15.5.0

- old
+ new

@@ -1,37 +1,41 @@ # frozen_string_literal: true require "milestoner" require "refinements/pathnames" +require "refinements/structs" require "gemsmith/identity" require "gemsmith/credentials" require "gemsmith/cli" module Gemsmith module Rake # Provides gem release functionality. Meant to be wrapped in Rake tasks. # :reek:TooManyInstanceVariables class Publisher using Refinements::Pathnames + using Refinements::Structs def self.gem_spec_path Pathname.pwd.files("*.gemspec").first.to_s end # rubocop:disable Metrics/ParameterLists # :reek:LongParameterList def initialize gem_spec: Gemsmith::Gem::Specification.new(self.class.gem_spec_path.to_s), gem_config: Gemsmith::CLI.configuration.to_h, credentials: Gemsmith::Credentials, - publisher: Milestoner::Publisher.new, + publisher: Milestoner::Tags::Publisher.new, + milestoner_container: Milestoner::Container, shell: Bundler::UI::Shell.new, kernel: Kernel @gem_spec = gem_spec @gem_config = gem_config @credentials = credentials @publisher = publisher + @milestoner_container = milestoner_container @shell = shell @kernel = kernel end # rubocop:enable Metrics/ParameterLists @@ -42,23 +46,30 @@ .then { |options| execute_push options } .then { |status| output_push status } end def publish - publisher.publish gem_spec.version, sign: signed? + milestoner_configuration.merge(git_tag_version: gem_spec.version, git_tag_sign: signed?) + .then { |configuration| publisher.call configuration } push - rescue Milestoner::Errors::Base => error + rescue Milestoner::Error => error shell.error error.message end def signed? gem_config.dig :publish, :sign end private - attr_reader :gem_spec, :gem_config, :credentials, :publisher, :shell, :kernel + attr_reader :gem_spec, + :gem_config, + :credentials, + :publisher, + :milestoner_container, + :shell, + :kernel def gem_host gem_spec.allowed_push_host end @@ -80,8 +91,10 @@ "Check gemspec and gem credential settings." end status end + + def milestoner_configuration = milestoner_container[:configuration] end end end