Commit 8c5003cf75bf48faf88d7148a241c9e89f623c97
1 parent
e03a018d
Exists in
master
and in
4 other branches
Refactor: clean up models.
* Network::Commit ** Removing unnecessary accessors. ** Removing add_refs methods. * Network::Graph ** Removing unnecessary accessors. ** The 3 times loop of commits don't need.
Showing
2 changed files
with
20 additions
and
27 deletions
Show diff stats
app/models/network/commit.rb
... | ... | @@ -4,28 +4,19 @@ module Network |
4 | 4 | class Commit |
5 | 5 | include ActionView::Helpers::TagHelper |
6 | 6 | |
7 | - attr_accessor :time, :spaces, :refs, :parent_spaces | |
7 | + attr_reader :refs | |
8 | + attr_accessor :time, :spaces, :parent_spaces | |
8 | 9 | |
9 | - def initialize(commit) | |
10 | - @_commit = commit | |
10 | + def initialize(raw_commit, refs) | |
11 | + @commit = ::Commit.new(raw_commit) | |
11 | 12 | @time = -1 |
12 | 13 | @spaces = [] |
13 | 14 | @parent_spaces = [] |
15 | + @refs = refs || [] | |
14 | 16 | end |
15 | 17 | |
16 | 18 | def method_missing(m, *args, &block) |
17 | - @_commit.send(m, *args, &block) | |
18 | - end | |
19 | - | |
20 | - def add_refs(ref_cache, repo) | |
21 | - if ref_cache.empty? | |
22 | - repo.refs.each do |ref| | |
23 | - ref_cache[ref.commit.id] ||= [] | |
24 | - ref_cache[ref.commit.id] << ref | |
25 | - end | |
26 | - end | |
27 | - @refs = ref_cache[@_commit.id] if ref_cache.include?(@_commit.id) | |
28 | - @refs ||= [] | |
19 | + @commit.send(m, *args, &block) | |
29 | 20 | end |
30 | 21 | |
31 | 22 | def space | ... | ... |
app/models/network/graph.rb
... | ... | @@ -2,7 +2,7 @@ require "grit" |
2 | 2 | |
3 | 3 | module Network |
4 | 4 | class Graph |
5 | - attr_accessor :days, :commits, :ref_cache, :repo | |
5 | + attr_reader :days, :commits | |
6 | 6 | |
7 | 7 | def self.max_count |
8 | 8 | @max_count ||= 650 |
... | ... | @@ -13,7 +13,6 @@ module Network |
13 | 13 | @ref = ref |
14 | 14 | @commit = commit |
15 | 15 | @repo = project.repo |
16 | - @ref_cache = {} | |
17 | 16 | |
18 | 17 | @commits = collect_commits |
19 | 18 | @days = index_commits |
... | ... | @@ -24,17 +23,11 @@ module Network |
24 | 23 | # Get commits from repository |
25 | 24 | # |
26 | 25 | def collect_commits |
27 | - | |
28 | - @commits = Grit::Commit.find_all(repo, nil, {date_order: true, max_count: self.class.max_count, skip: to_commit}).dup | |
29 | - | |
30 | - # Decorate with app/models/commit.rb | |
31 | - @commits.map! { |commit| Commit.new(commit) } | |
26 | + @commits = Grit::Commit.find_all(@repo, nil, {date_order: true, max_count: self.class.max_count, skip: to_commit}).dup | |
32 | 27 | |
33 | 28 | # Decorate with app/model/network/commit.rb |
34 | - @commits.map! { |commit| Network::Commit.new(commit) } | |
35 | - | |
36 | - # add refs to each commit | |
37 | - @commits.each { |commit| commit.add_refs(ref_cache, repo) } | |
29 | + refs_cache = build_refs_cache | |
30 | + @commits.map! { |commit| Network::Commit.new(commit, refs_cache[commit.id]) } | |
38 | 31 | |
39 | 32 | @commits |
40 | 33 | end |
... | ... | @@ -78,7 +71,7 @@ module Network |
78 | 71 | |
79 | 72 | # Skip count that the target commit is displayed in center. |
80 | 73 | def to_commit |
81 | - commits = Grit::Commit.find_all(repo, nil, {date_order: true}) | |
74 | + commits = Grit::Commit.find_all(@repo, nil, {date_order: true}) | |
82 | 75 | commit_index = commits.index do |c| |
83 | 76 | c.id == @commit.id |
84 | 77 | end |
... | ... | @@ -280,5 +273,14 @@ module Network |
280 | 273 | leaves.push(commit) |
281 | 274 | end |
282 | 275 | end |
276 | + | |
277 | + def build_refs_cache | |
278 | + refs_cache = {} | |
279 | + @repo.refs.each do |ref| | |
280 | + refs_cache[ref.commit.id] = [] unless refs_cache.include?(ref.commit.id) | |
281 | + refs_cache[ref.commit.id] << ref | |
282 | + end | |
283 | + refs_cache | |
284 | + end | |
283 | 285 | end |
284 | 286 | end | ... | ... |