class Gem::Tasks::SCM::Tag
The ‘scm:tag` task.
def define
Defines the `scm:tag` task.
def define namespace :scm do task :tag, [:name] do |t,args| tag = if args.name args.name else version_tag(@project.gemspec.version) end status "Tagging #{tag} ..." unless tag!(tag) error "Could not create tag #{tag}" end end end end
def initialize(options={})
(**options)-
:format(String, Proc) --
Parameters:
-
options(Hash) --
def initialize(options={}) super() @format = options.fetch(:format,DEFAULT_FORMAT) yield self if block_given? define end
def tag!(name)
-
(Boolean)-
Parameters:
-
name(String) --
def tag!(name) case @project.scm when :git then run 'git', 'tag', name when :hg then run 'hg', 'tag', name when :svn branch = File.basename(@project.root) tags_dir = if branch == 'trunk' # we are in trunk/ File.join('..','tags') else # must be within branches/$name/ File.join('..','..','tags') end tag_dir = File.join(tag_dirs,name) FileUtils.mkdir_p tags_dir FileUtils.cp_r '.', tag_dir return run('svn', 'add', tag_dir) else true end end
def version_tag(version)
-
(TypeError)-
Returns:
-
(String)-
Parameters:
-
version(String) --
def version_tag(version) case @format when String (@format % version) when Proc @format[version] else raise(TypeError,"tag format must be a String or Proc") end end