Module: Rake::DevEiate::Releases

Defined in:
lib/rake/deveiate/releases.rb

Overview

Release tasks

Instance Method Summary collapse

Instance Method Details

#define_tasksObject

Define release tasks.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rake/deveiate/releases.rb', line 13

def define_tasks
	super if defined?( super )

	checksum_dir = Rake::DevEiate::CHECKSUM_DIR
	checksum_path = checksum_dir + "#{self.gem_filename}.sha512"

	directory( checksum_dir )

	file( checksum_path => [self.gem_path, checksum_dir], &method(:do_make_release_checksum) )
	task :add_release_checksum => checksum_path

	task( :release_gem => :add_release_checksum, &method(:do_release_gem) )

	task :debug => :release_debug
	task( :release_debug, &method(:do_release_debug) )
end

#do_make_release_checksum(task, args) ⇒ Object

Create a checksum for a release gemfile



32
33
34
35
36
37
# File 'lib/rake/deveiate/releases.rb', line 32

def do_make_release_checksum( task, args )
	if self.prompt.yes?( "Make a checksum for this release?" )
		checksum = Digest::SHA512.new.hexdigest( self.gem_path.read )
		File.open( task.name, 'w', encoding: 'us-ascii' ) {|f| f.write(checksum) }
	end
end

#do_release_debug(task, args) ⇒ Object

Body of the release_debug task.



51
52
53
54
55
56
57
# File 'lib/rake/deveiate/releases.rb', line 51

def do_release_debug( task, args )
	gemserver = self.allowed_push_host || Rake::DevEiate::DEFAULT_GEMSERVER

	self.prompt.say( "Releases will be pushed to:", color: :bright_green )
	self.prompt.say( self.indent(gemserver, 4) )
	self.prompt.say( "\n" )
end

#do_release_gem(task, args) ⇒ Object

Body of the release_gem task.



41
42
43
44
45
46
47
# File 'lib/rake/deveiate/releases.rb', line 41

def do_release_gem( task, args )
	gemserver = self.allowed_push_host || Rake::DevEiate::DEFAULT_GEMSERVER

	if self.prompt.yes?( "Push a new gem to #{gemserver}?" ) {|q| q.default(false) }
		sh( Gem.ruby, "-S", "gem", "push", self.gem_path.to_s )
	end
end