Commit 79cd1ca3043822d5f763b8a1900fd2bea52b0ff0

Authored by Sato Hiroyuki
1 parent ccc712b1

Refactor: change the map hash from a local variable to private variable.

Showing 1 changed file with 31 additions and 34 deletions   Show diff stats
app/models/network/graph.rb
... ... @@ -44,33 +44,31 @@ module Network
44 44 # list of commits. As well as returns date list
45 45 # corelated with time set on commits.
46 46 #
47   - # @param [Array<Graph::Commit>] commits to index
48   - #
49 47 # @return [Array<TimeDate>] list of commit dates corelated with time on commits
50 48 def index_commits
51 49 days = []
52   - map = {}
  50 + @map = {}
53 51  
54 52 @commits.reverse.each_with_index do |c,i|
55 53 c.time = i
56 54 days[i] = c.committed_date
57   - map[c.id] = c
  55 + @map[c.id] = c
58 56 end
59 57  
60   - @_reserved = {}
  58 + @reserved = {}
61 59 days.each_index do |i|
62   - @_reserved[i] = []
  60 + @reserved[i] = []
63 61 end
64 62  
65 63 commits_sort_by_ref.each do |commit|
66   - if map.include? commit.id then
67   - place_chain(map[commit.id], map)
  64 + if @map.include? commit.id then
  65 + place_chain(commit)
68 66 end
69 67 end
70 68  
71 69 # find parent spaces for not overlap lines
72 70 @commits.each do |c|
73   - c.parent_spaces.concat(find_free_parent_spaces(c, map))
  71 + c.parent_spaces.concat(find_free_parent_spaces(c))
74 72 end
75 73  
76 74 days
... ... @@ -114,12 +112,12 @@ module Network
114 112 heads.include?(@ref)
115 113 end
116 114  
117   - def find_free_parent_spaces(commit, map)
  115 + def find_free_parent_spaces(commit)
118 116 spaces = []
119 117  
120 118 commit.parents.each do |p|
121   - if map.include?(p.id) then
122   - parent = map[p.id]
  119 + if @map.include?(p.id) then
  120 + parent = @map[p.id]
123 121  
124 122 range = if commit.time < parent.time then
125 123 commit.time..parent.time
... ... @@ -164,23 +162,22 @@ module Network
164 162  
165 163 # Add space mark on commit and its parents
166 164 #
167   - # @param [Graph::Commit] the commit object.
168   - # @param [Hash<String,Graph::Commit>] map of commits
169   - def place_chain(commit, map, parent_time = nil)
170   - leaves = take_left_leaves(commit, map)
  165 + # @param [::Commit] the commit object.
  166 + def place_chain(commit, parent_time = nil)
  167 + leaves = take_left_leaves(commit)
171 168 if leaves.empty?
172 169 return
173 170 end
174 171  
175 172 time_range = leaves.last.time..leaves.first.time
176   - space_base = get_space_base(leaves, map)
  173 + space_base = get_space_base(leaves)
177 174 space = find_free_space(time_range, 2, space_base)
178 175 leaves.each do |l|
179 176 l.spaces << space
180 177 # Also add space to parent
181 178 l.parents.each do |p|
182   - if map.include?(p.id)
183   - parent = map[p.id]
  179 + if @map.include?(p.id)
  180 + parent = @map[p.id]
184 181 if parent.space > 0
185 182 parent.spaces << space
186 183 end
... ... @@ -192,8 +189,8 @@ module Network
192 189 min_time = leaves.last.time
193 190 parents = leaves.last.parents.collect
194 191 parents.each do |p|
195   - if map.include? p.id
196   - parent = map[p.id]
  192 + if @map.include? p.id
  193 + parent = @map[p.id]
197 194 if parent.time < min_time
198 195 min_time = parent.time
199 196 end
... ... @@ -209,19 +206,19 @@ module Network
209 206  
210 207 # Visit branching chains
211 208 leaves.each do |l|
212   - parents = l.parents.collect.select{|p| map.include? p.id and map[p.id].space.zero?}
  209 + parents = l.parents.collect.select{|p| @map.include? p.id and @map[p.id].space.zero?}
213 210 for p in parents
214   - place_chain(map[p.id], map, l.time)
  211 + place_chain(p, l.time)
215 212 end
216 213 end
217 214 end
218 215  
219   - def get_space_base(leaves, map)
  216 + def get_space_base(leaves)
220 217 space_base = 1
221 218 if leaves.last.parents.size > 0
222 219 first_parent = leaves.last.parents.first
223   - if map.include?(first_parent.id)
224   - first_p = map[first_parent.id]
  220 + if @map.include?(first_parent.id)
  221 + first_p = @map[first_parent.id]
225 222 if first_p.space > 0
226 223 space_base = first_p.space
227 224 end
... ... @@ -232,7 +229,7 @@ module Network
232 229  
233 230 def mark_reserved(time_range, space)
234 231 for day in time_range
235   - @_reserved[day].push(space)
  232 + @reserved[day].push(space)
236 233 end
237 234 end
238 235  
... ... @@ -241,7 +238,7 @@ module Network
241 238  
242 239 reserved = []
243 240 for day in time_range
244   - reserved += @_reserved[day]
  241 + reserved += @reserved[day]
245 242 end
246 243 reserved.uniq!
247 244  
... ... @@ -260,19 +257,19 @@ module Network
260 257 # Takes most left subtree branch of commits
261 258 # which don't have space mark yet.
262 259 #
263   - # @param [Graph::Commit] the commit object.
264   - # @param [Hash<String,Graph::Commit>] map of commits
  260 + # @param [::Commit] the commit object.
265 261 #
266   - # @return [Array<Graph::Commit>] list of branch commits
267   - def take_left_leaves(commit, map)
  262 + # @return [Array<Network::Commit>] list of branch commits
  263 + def take_left_leaves(raw_commit)
  264 + commit = @map[raw_commit.id]
268 265 leaves = []
269 266 leaves.push(commit) if commit.space.zero?
270 267  
271 268 while true
272 269 return leaves if commit.parents.count.zero?
273   - return leaves unless map.include? commit.parents.first.id
  270 + return leaves unless @map.include? commit.parents.first.id
274 271  
275   - commit = map[commit.parents.first.id]
  272 + commit = @map[commit.parents.first.id]
276 273  
277 274 return leaves unless commit.space.zero?
278 275  
... ...