class Autoversion::Gitter

Public Class Methods

new(path, config) click to toggle source
# File lib/autoversion/gitter.rb, line 15
def initialize path, config
  @path = path
  @config = config
  @repo = Git.open(path)
end

Public Instance Methods

commit!(versionType, currentVersion) click to toggle source
# File lib/autoversion/gitter.rb, line 44
def commit! versionType, currentVersion
  return false unless @config[:actions].include?(:commit) 
   
  write_commit currentVersion
  write_tag currentVersion if @config[:actions].include?(:tag)
end
dir_is_clean?() click to toggle source
# File lib/autoversion/gitter.rb, line 31
def dir_is_clean?
  sum = gitstatus_untracked_workaround.length +
        @repo.status.added.length +
        @repo.status.changed.length +
        @repo.status.deleted.length

  sum == 0
end
ensure_cleanliness!() click to toggle source
# File lib/autoversion/gitter.rb, line 21
def ensure_cleanliness!
  if @config[:actions].include?(:commit)
    raise DirtyStaging unless dir_is_clean?
  end
end
ensure_valid_branch!(versionType) click to toggle source
# File lib/autoversion/gitter.rb, line 27
def ensure_valid_branch! versionType
  raise NotOnStableBranch.new(@config[:stable_branch]) if versionType == :major && !on_stable_branch?
end
on_stable_branch?() click to toggle source
# File lib/autoversion/gitter.rb, line 40
def on_stable_branch?
  @repo.current_branch == @config[:stable_branch].to_s
end

Private Instance Methods

gitstatus_untracked_workaround() click to toggle source
# File lib/autoversion/gitter.rb, line 62
def gitstatus_untracked_workaround
  git_cmd = "git --work-tree=#{@repo.dir} --git-dir=#{@repo.dir}/.git " +
            "ls-files -o -z --full-name --exclude-standard"
  `#{git_cmd}`.split("\x0")
end
write_commit(version) click to toggle source
# File lib/autoversion/gitter.rb, line 53
def write_commit version
  @repo.add '.'
  @repo.commit "#{@config[:prefix]}#{version}"
end
write_tag(version) click to toggle source
# File lib/autoversion/gitter.rb, line 58
def write_tag version
  @repo.add_tag "#{@config[:prefix]}#{version}"
end