class Gem::BumpTask

Attributes

term[R]

Public Class Methods

new(term, options = {}) click to toggle source
# File lib/tasks/gem/bump_task.rb, line 21
def initialize(term, options = {})
  @term = term.to_sym
  @options = options
end

Public Instance Methods

task() click to toggle source
# File lib/tasks/gem/bump_task.rb, line 26
def task
  prepare_repo
  version = bump(read_version)
  write_version version.dup.to_s

  version
end

Protected Instance Methods

bump(old_version) click to toggle source
# File lib/tasks/gem/bump_task.rb, line 50
def bump(old_version)
  new_version = Anvil::Versioner.new(old_version).bump! term
  logger.info "Bumped from #{old_version} to #{new_version}"

  new_version
end
clean?() click to toggle source
# File lib/tasks/gem/bump_task.rb, line 81
def clean?
  git.status.changed.empty? &&
    git.status.deleted.empty? &&
    git.status.added.empty?
end
commit_and_tag(version) click to toggle source
# File lib/tasks/gem/bump_task.rb, line 57
def commit_and_tag(version)
  git.add 'VERSION'
  git.commit "Bump version v#{version}"
  git.add_tag "v#{version}"
  git.push('origin', git.current_branch)
end
force?() click to toggle source
# File lib/tasks/gem/bump_task.rb, line 87
def force?
  options[:force]
end
git() click to toggle source
# File lib/tasks/gem/bump_task.rb, line 36
def git
  @git ||= Git.open Dir.pwd
end
prepare_repo() click to toggle source
# File lib/tasks/gem/bump_task.rb, line 73
def prepare_repo
  if clean? || force?
    git.pull('origin', git.current_branch)
  else
    fail Anvil::RepoNotClean
  end
end
read_version() click to toggle source
# File lib/tasks/gem/bump_task.rb, line 46
def read_version
  version_file { |f| f.read.strip }
end
version_file(mode = 'r') { |f| ... } click to toggle source
# File lib/tasks/gem/bump_task.rb, line 40
def version_file(mode = 'r')
  File.open('VERSION', mode) do |f|
    yield f
  end
end
write_version(version) click to toggle source
# File lib/tasks/gem/bump_task.rb, line 64
def write_version(version)
  version_file('w+') do |f|
    f.puts version
    f.close
  end

  commit_and_tag version if options[:persist]
end