class GitSnip::Cleaner
Public Class Methods
new(path, target_branch = 'master', ignored_branches = [])
click to toggle source
# File lib/git_snip/cleaner.rb, line 7 def initialize(path, target_branch = 'master', ignored_branches = []) @path = path @target_branch = target_branch @ignored_branches = ignored_branches @git = Git.init(path) end
Public Instance Methods
delete_merged_branches() { |branch| ... }
click to toggle source
# File lib/git_snip/cleaner.rb, line 18 def delete_merged_branches checkout_target_branch merged_branches.map do |branch| delete = true delete = yield branch if block_given? if delete branch.delete branch else nil end end.to_a end
merged_branches()
click to toggle source
# File lib/git_snip/cleaner.rb, line 14 def merged_branches local_branches.select { |branch| merged?(branch) } end
Private Instance Methods
checkout_target_branch()
click to toggle source
# File lib/git_snip/cleaner.rb, line 47 def checkout_target_branch @git.checkout(@target_branch) end
local_branches()
click to toggle source
# File lib/git_snip/cleaner.rb, line 36 def local_branches @git.branches.local.lazy.reject do |branch| branch.name == @target_branch || @ignored_branches.include?(branch.name) end end
merged?(branch)
click to toggle source
# File lib/git_snip/cleaner.rb, line 42 def merged?(branch) @git.lib.send(:command, 'cherry', [@target_branch, branch.name]) .each_line.all? { |line| line.start_with?('-') } end