Class: GGem::CLI::TagCommand

Inherits:
Object
  • Object
show all
Includes:
GemspecCommand, GitRepoCommand
Defined in:
lib/ggem/cli/commands.rb

Instance Method Summary collapse

Instance Method Details

#helpObject



314
315
316
317
318
319
# File 'lib/ggem/cli/commands.rb', line 314

def help
  "Usage: ggem tag [options]\n\n" \
  "Options: #{@clirb}\n" \
  "Description:\n" \
  "  #{self.summary}"
end

#run(argv, *args) ⇒ Object



282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
# File 'lib/ggem/cli/commands.rb', line 282

def run(argv, *args)
  super

  begin
    cmd{ @repo.run_validate_clean_cmd }
    cmd{ @repo.run_validate_committed_cmd }
  rescue GGem::GitRepo::CmdError => err
    @stderr.puts "There are files that need to be committed first."
    raise CommandExitError
  end

  cmd{ @repo.run_add_version_tag_cmd(@spec.version, @spec.version_tag) }

  @stdout.puts "Tagged #{@spec.version_tag}."

  begin
    cmd{ @repo.run_push_cmd }
  rescue
    cmd{ @repo.run_rm_tag_cmd(@spec.version_tag) }
    raise
  end

  @stdout.puts "Pushed git commits and tags."
rescue GGem::GitRepo::CmdError => err
  @stderr.puts err.message
  raise CommandExitError
end

#summaryObject



310
311
312
# File 'lib/ggem/cli/commands.rb', line 310

def summary
  "Tag #{@spec.version_tag} and push git commits/tags"
end