Refactor: Removing the duplicated code.
This commit is contained in:
parent
79cd1ca304
commit
b7e5f4556b
3 changed files with 38 additions and 46 deletions
|
@ -26,5 +26,14 @@ module Network
|
|||
0
|
||||
end
|
||||
end
|
||||
|
||||
def parents(map)
|
||||
@commit.parents.map do |p|
|
||||
if map.include?(p.id)
|
||||
map[p.id]
|
||||
end
|
||||
end
|
||||
.compact
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@ require "grit"
|
|||
|
||||
module Network
|
||||
class Graph
|
||||
attr_reader :days, :commits
|
||||
attr_reader :days, :commits, :map
|
||||
|
||||
def self.max_count
|
||||
@max_count ||= 650
|
||||
|
@ -61,10 +61,8 @@ module Network
|
|||
end
|
||||
|
||||
commits_sort_by_ref.each do |commit|
|
||||
if @map.include? commit.id then
|
||||
place_chain(commit)
|
||||
end
|
||||
end
|
||||
|
||||
# find parent spaces for not overlap lines
|
||||
@commits.each do |c|
|
||||
|
@ -115,10 +113,7 @@ module Network
|
|||
def find_free_parent_spaces(commit)
|
||||
spaces = []
|
||||
|
||||
commit.parents.each do |p|
|
||||
if @map.include?(p.id) then
|
||||
parent = @map[p.id]
|
||||
|
||||
commit.parents(@map).each do |parent|
|
||||
range = if commit.time < parent.time then
|
||||
commit.time..parent.time
|
||||
else
|
||||
|
@ -134,7 +129,6 @@ module Network
|
|||
mark_reserved(range, space)
|
||||
spaces << space
|
||||
end
|
||||
end
|
||||
|
||||
spaces
|
||||
end
|
||||
|
@ -175,27 +169,20 @@ module Network
|
|||
leaves.each do |l|
|
||||
l.spaces << space
|
||||
# Also add space to parent
|
||||
l.parents.each do |p|
|
||||
if @map.include?(p.id)
|
||||
parent = @map[p.id]
|
||||
l.parents(@map).each do |parent|
|
||||
if parent.space > 0
|
||||
parent.spaces << space
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# and mark it as reserved
|
||||
min_time = leaves.last.time
|
||||
parents = leaves.last.parents.collect
|
||||
parents.each do |p|
|
||||
if @map.include? p.id
|
||||
parent = @map[p.id]
|
||||
leaves.last.parents(@map).each do |parent|
|
||||
if parent.time < min_time
|
||||
min_time = parent.time
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if parent_time.nil?
|
||||
max_time = leaves.first.time
|
||||
|
@ -206,7 +193,7 @@ module Network
|
|||
|
||||
# Visit branching chains
|
||||
leaves.each do |l|
|
||||
parents = l.parents.collect.select{|p| @map.include? p.id and @map[p.id].space.zero?}
|
||||
parents = l.parents(@map).select{|p| p.space.zero?}
|
||||
for p in parents
|
||||
place_chain(p, l.time)
|
||||
end
|
||||
|
@ -215,13 +202,10 @@ module Network
|
|||
|
||||
def get_space_base(leaves)
|
||||
space_base = 1
|
||||
if leaves.last.parents.size > 0
|
||||
first_parent = leaves.last.parents.first
|
||||
if @map.include?(first_parent.id)
|
||||
first_p = @map[first_parent.id]
|
||||
if first_p.space > 0
|
||||
space_base = first_p.space
|
||||
end
|
||||
parents = leaves.last.parents(@map)
|
||||
if parents.size > 0
|
||||
if parents.first.space > 0
|
||||
space_base = parents.first.space
|
||||
end
|
||||
end
|
||||
space_base
|
||||
|
@ -266,10 +250,9 @@ module Network
|
|||
leaves.push(commit) if commit.space.zero?
|
||||
|
||||
while true
|
||||
return leaves if commit.parents.count.zero?
|
||||
return leaves unless @map.include? commit.parents.first.id
|
||||
return leaves if commit.parents(@map).count.zero?
|
||||
|
||||
commit = @map[commit.parents.first.id]
|
||||
commit = commit.parents(@map).first
|
||||
|
||||
return leaves unless commit.space.zero?
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
days: @graph.days.compact.map { |d| [d.day, d.strftime("%b")] },
|
||||
commits: @graph.commits.map do |c|
|
||||
{
|
||||
parents: parents_zip_spaces(c.parents, c.parent_spaces),
|
||||
parents: parents_zip_spaces(c.parents(@graph.map), c.parent_spaces),
|
||||
author: {
|
||||
name: c.author.name,
|
||||
email: c.author.email,
|
||||
|
|
Loading…
Reference in a new issue