Class: Gem::Commands::ReleaseCommand

Inherits:
Gem::Command
  • Object
show all
Includes:
CommandOptions, Gem::Commands, GemRelease, Helpers
Defined in:
lib/rubygems/commands/release_command.rb

Constant Summary collapse

DEFAULTS =
{
  :tag   => false,
  :quiet => false,
  :key   => '',
  :host  => ''
}

Constants included from GemRelease

GemRelease::VERSION

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ ReleaseCommand

Returns a new instance of ReleaseCommand.



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rubygems/commands/release_command.rb', line 18

def initialize(options = {})
  super 'release', 'Build gem from a gemspec and push to rubygems.org', DEFAULTS.merge(options)

  option :tag,   '-t', 'Create a git tag and push --tags to origin'
  option :quiet, '-q', 'Do not output status messages'
  option :key,   '-k', 'Use the given API key from ~/.gem/credentials'
  option :host,  '-h', 'Push to a gemcutter-compatible host other than rubygems.org'

  @arguments = "gemspec - optional gemspec file name, will use the first *.gemspec if not specified"
  @usage = "#{program_name} [gemspec]"
end

Instance Attribute Details

#argumentsObject (readonly)

Returns the value of attribute arguments.



16
17
18
# File 'lib/rubygems/commands/release_command.rb', line 16

def arguments
  @arguments
end

#usageObject (readonly)

Returns the value of attribute usage.



16
17
18
# File 'lib/rubygems/commands/release_command.rb', line 16

def usage
  @usage
end

Instance Method Details

#executeObject



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/rubygems/commands/release_command.rb', line 30

def execute
  tag if options[:tag]

  in_gemspec_dirs do
    build
    push
    remove
  end

  say "All is good, thanks my friend.\n"
end