Class: GitRecent::BranchLister

Inherits:
Object
  • Object
show all
Defined in:
lib/git_recent/branch_lister.rb

Instance Method Summary collapse

Constructor Details

#initialize(reflog_iterator = GitRecent::ReflogIterator.new, local_branches = GitRecent::LocalBranchReader.local_branches_excluding_current) ⇒ BranchLister

Returns a new instance of BranchLister.



9
10
11
12
13
# File 'lib/git_recent/branch_lister.rb', line 9

def initialize(reflog_iterator=GitRecent::ReflogIterator.new,
               local_branches=GitRecent::LocalBranchReader.local_branches_excluding_current)
  @reflog_iterator = reflog_iterator
  @local_branches = local_branches
end

Instance Method Details

#branch_names(max) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/git_recent/branch_lister.rb', line 15

def branch_names(max)
  @recent_branch_names ||= begin
    recent_branches = {}

    reflog_iterator.each do |reflog_line|
      to_branch = reflog_line.to_branch
      recent_branches[to_branch] = true if should_include_branch? to_branch

      return recent_branches.keys if recent_branches.keys.length == max

      from_branch = reflog_line.from_branch
      recent_branches[from_branch] = true if should_include_branch? from_branch

      return recent_branches.keys if recent_branches.keys.length == max
    end

    recent_branches.keys
  end
end