Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSato Hiroyuki <sathiroyuki@gmail.com>2013-03-07 15:36:40 +0400
committerSato Hiroyuki <sathiroyuki@gmail.com>2013-03-07 16:10:27 +0400
commitb7e5f4556ba845cf228eb8cb70f437e2f6792c69 (patch)
tree25ef2d90dc546c239e746846ef7aad840119fc89 /app/models/network
parent79cd1ca3043822d5f763b8a1900fd2bea52b0ff0 (diff)
Refactor: Removing the duplicated code.
Diffstat (limited to 'app/models/network')
-rw-r--r--app/models/network/commit.rb9
-rw-r--r--app/models/network/graph.rb77
2 files changed, 39 insertions, 47 deletions
diff --git a/app/models/network/commit.rb b/app/models/network/commit.rb
index 27c8cc97284..d0bc61c3bf7 100644
--- a/app/models/network/commit.rb
+++ b/app/models/network/commit.rb
@@ -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
diff --git a/app/models/network/graph.rb b/app/models/network/graph.rb
index 3504332ffa0..074ec371fd2 100644
--- a/app/models/network/graph.rb
+++ b/app/models/network/graph.rb
@@ -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,9 +61,7 @@ module Network
end
commits_sort_by_ref.each do |commit|
- if @map.include? commit.id then
- place_chain(commit)
- end
+ place_chain(commit)
end
# find parent spaces for not overlap lines
@@ -115,25 +113,21 @@ module Network
def find_free_parent_spaces(commit)
spaces = []
- commit.parents.each do |p|
- if @map.include?(p.id) then
- parent = @map[p.id]
-
- range = if commit.time < parent.time then
- commit.time..parent.time
- else
- parent.time..commit.time
- end
-
- space = if commit.space >= parent.space then
- find_free_parent_space(range, parent.space, -1, commit.space)
- else
- find_free_parent_space(range, commit.space, -1, parent.space)
- end
-
- mark_reserved(range, space)
- spaces << space
- end
+ commit.parents(@map).each do |parent|
+ range = if commit.time < parent.time then
+ commit.time..parent.time
+ else
+ parent.time..commit.time
+ end
+
+ space = if commit.space >= parent.space then
+ find_free_parent_space(range, parent.space, -1, commit.space)
+ else
+ find_free_parent_space(range, commit.space, -1, parent.space)
+ end
+
+ mark_reserved(range, space)
+ spaces << space
end
spaces
@@ -175,25 +169,18 @@ 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]
- if parent.space > 0
- parent.spaces << space
- end
+ l.parents(@map).each do |parent|
+ if parent.space > 0
+ parent.spaces << space
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]
- if parent.time < min_time
- min_time = parent.time
- end
+ leaves.last.parents(@map).each do |parent|
+ if parent.time < min_time
+ min_time = parent.time
end
end
@@ -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?