Sha256: b0f0024f4a2930dc3a93cdb3447924abec2b1d6d9c587b6586155d15655bf9d6

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

module Semvergen

  class Release

    extend Forwardable

    def_delegators :@interface, :say, :ask, :color, :choose, :newline, :agree

    def initialize(interface, version_file, change_log_file, shell, gem_name, gem_server, notifier)
      @interface = interface
      @version_file = version_file
      @change_log_file = change_log_file
      @shell = shell
      @gem_name = gem_name
      @gem_server = gem_server
      @notifier = notifier
    end

    def run!(options={})
      if agree("Release? ")
        say "Found gemspec: #{color(@gem_name, :green)}"
        newline

        say color("Building gem: ")
        @shell.build_gem(@gem_name)
        say color("OK", :green, :bold)

        say color("Publishing: ")
        @shell.publish(@gem_name, @version_file.version, @gem_server)
        say color("OK", :green, :bold)

        features = options[:features] || gem_features
        @notifier.gem_published(@gem_name, gem_version, features.join("\n"))

        @shell.cleanup(@gem_name, gem_version) rescue say color("Unable to cleanup", :red)
      end
    end

    private

    def gem_version
      @version_file.version
    end

    def gem_features
      @change_log_file.features
    end


  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
semvergen-1.7.1 lib/semvergen/release.rb
semvergen-1.6.0 lib/semvergen/release.rb