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 14:16:51 +0400
committerSato Hiroyuki <sathiroyuki@gmail.com>2013-03-07 14:16:51 +0400
commitccc712b1983f49216fc85deb61a7e5efd7790936 (patch)
tree58bb744d2fbca96d664b31d7b8534422a774d3ad /app/models/network
parent8c5003cf75bf48faf88d7148a241c9e89f623c97 (diff)
Refacor: removing the times array, because that is same with @commits array.
Diffstat (limited to 'app/models/network')
-rw-r--r--app/models/network/graph.rb52
1 files changed, 31 insertions, 21 deletions
diff --git a/app/models/network/graph.rb b/app/models/network/graph.rb
index f130bffca14..0c0741c3795 100644
--- a/app/models/network/graph.rb
+++ b/app/models/network/graph.rb
@@ -23,13 +23,21 @@ module Network
# Get commits from repository
#
def collect_commits
- @commits = Grit::Commit.find_all(@repo, nil, {date_order: true, max_count: self.class.max_count, skip: to_commit}).dup
-
- # Decorate with app/model/network/commit.rb
refs_cache = build_refs_cache
- @commits.map! { |commit| Network::Commit.new(commit, refs_cache[commit.id]) }
- @commits
+ Grit::Commit.find_all(
+ @repo,
+ nil,
+ {
+ date_order: true,
+ max_count: self.class.max_count,
+ skip: count_to_display_commit_in_center
+ }
+ )
+ .map do |commit|
+ # Decorate with app/model/network/commit.rb
+ Network::Commit.new(commit, refs_cache[commit.id])
+ end
end
# Method is adding time and space on the
@@ -40,14 +48,13 @@ module Network
#
# @return [Array<TimeDate>] list of commit dates corelated with time on commits
def index_commits
- days, times = [], []
+ days = []
map = {}
- commits.reverse.each_with_index do |c,i|
+ @commits.reverse.each_with_index do |c,i|
c.time = i
days[i] = c.committed_date
map[c.id] = c
- times[i] = c
end
@_reserved = {}
@@ -62,17 +69,16 @@ module Network
end
# find parent spaces for not overlap lines
- times.each do |c|
- c.parent_spaces.concat(find_free_parent_spaces(c, map, times))
+ @commits.each do |c|
+ c.parent_spaces.concat(find_free_parent_spaces(c, map))
end
days
end
# Skip count that the target commit is displayed in center.
- def to_commit
- commits = Grit::Commit.find_all(@repo, nil, {date_order: true})
- commit_index = commits.index do |c|
+ def count_to_display_commit_in_center
+ commit_index = Grit::Commit.find_all(@repo, nil, {date_order: true}).index do |c|
c.id == @commit.id
end
@@ -85,7 +91,7 @@ module Network
end
def commits_sort_by_ref
- commits.sort do |a,b|
+ @commits.sort do |a,b|
if include_ref?(a)
-1
elsif include_ref?(b)
@@ -108,7 +114,7 @@ module Network
heads.include?(@ref)
end
- def find_free_parent_spaces(commit, map, times)
+ def find_free_parent_spaces(commit, map)
spaces = []
commit.parents.each do |p|
@@ -122,9 +128,9 @@ module Network
end
space = if commit.space >= parent.space then
- find_free_parent_space(range, parent.space, -1, commit.space, times)
+ find_free_parent_space(range, parent.space, -1, commit.space)
else
- find_free_parent_space(range, commit.space, -1, parent.space, times)
+ find_free_parent_space(range, commit.space, -1, parent.space)
end
mark_reserved(range, space)
@@ -135,19 +141,19 @@ module Network
spaces
end
- def find_free_parent_space(range, space_base, space_step, space_default, times)
- if is_overlap?(range, times, space_default) then
+ def find_free_parent_space(range, space_base, space_step, space_default)
+ if is_overlap?(range, space_default) then
find_free_space(range, space_step, space_base, space_default)
else
space_default
end
end
- def is_overlap?(range, times, overlap_space)
+ def is_overlap?(range, overlap_space)
range.each do |i|
if i != range.first &&
i != range.last &&
- times[i].spaces.include?(overlap_space) then
+ @commits[reversed_index(i)].spaces.include?(overlap_space) then
return true;
end
@@ -282,5 +288,9 @@ module Network
end
refs_cache
end
+
+ def reversed_index(index)
+ -index - 1
+ end
end
end