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