Sha256: c3683a993e139aaed386fd5ef344a13c475cc12e5e88877a3286fedd3f2313d7

Contents?: true

Size: 998 Bytes

Versions: 1

Compression:

Stored size: 998 Bytes

Contents

require 'rake'

module Travis
  module Release
    # The Rake task used to release your gem.
    class Task
      include Rake::DSL

      attr_reader :name

      # @param [Symbol] name - The name of this Rake task.
      def initialize(name = :release)
        @name = name
        install
      end

      # When +install_tasks!+ is invoked, create a +:release+ task in the
      # Rakefile.
      #
      # @return [Rake::Task]
      def install
        clear_old_task && define_new_task
      end

      private

      # @private
      def clear_old_task
        Rake::Task[name.to_s].clear
      rescue
        true
      end

      # @private
      def define_new_task
        desc 'Build and push this gem to RubyGems via Travis CI'
        task name => %w(
          build release:guard_clean release:source_control_push
        ) do
          Bundler.ui.confirm %(
            Please wait for the gem to deploy to RubyGems on Travis CI
          )
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
travis-release-0.0.1 lib/travis/release/task.rb