Commit 2f7f46b25655aa6f2c2a7756663c97ddb4491100
1 parent
9dc46eee
Exists in
master
and in
4 other branches
Refactor: replace "render :json = graph.to_json" to view template(show.json.erb).
Because model shouldn't know about view logic.
Showing
5 changed files
with
39 additions
and
38 deletions
Show diff stats
app/controllers/graph_controller.rb
... | ... | @@ -8,24 +8,21 @@ class GraphController < ProjectResourceController |
8 | 8 | before_filter :require_non_empty_project |
9 | 9 | |
10 | 10 | def show |
11 | - if params.has_key?(:q) && params[:q].blank? | |
12 | - redirect_to project_graph_path(@project, params[:id]) | |
13 | - return | |
14 | - end | |
15 | - | |
16 | 11 | if params.has_key?(:q) |
12 | + if params[:q].blank? | |
13 | + redirect_to project_graph_path(@project, params[:id]) | |
14 | + return | |
15 | + end | |
16 | + | |
17 | 17 | @q = params[:q] |
18 | 18 | @commit = @project.repository.commit(@q) || @commit |
19 | 19 | end |
20 | 20 | |
21 | 21 | respond_to do |format| |
22 | 22 | format.html |
23 | + | |
23 | 24 | format.json do |
24 | - graph = Graph::JsonBuilder.new(project, @ref, @commit) | |
25 | - graph.commits.each do |c| | |
26 | - c.icon = gravatar_icon(c.author.email) | |
27 | - end | |
28 | - render :json => graph.to_json | |
25 | + @graph = Graph::JsonBuilder.new(project, @ref, @commit) | |
29 | 26 | end |
30 | 27 | end |
31 | 28 | end | ... | ... |
app/models/graph/commit.rb
... | ... | @@ -4,7 +4,7 @@ module Graph |
4 | 4 | class Commit |
5 | 5 | include ActionView::Helpers::TagHelper |
6 | 6 | |
7 | - attr_accessor :time, :spaces, :refs, :parent_spaces, :icon | |
7 | + attr_accessor :time, :spaces, :refs, :parent_spaces | |
8 | 8 | |
9 | 9 | def initialize(commit) |
10 | 10 | @_commit = commit |
... | ... | @@ -17,26 +17,6 @@ module Graph |
17 | 17 | @_commit.send(m, *args, &block) |
18 | 18 | end |
19 | 19 | |
20 | - def to_graph_hash | |
21 | - h = {} | |
22 | - h[:parents] = self.parents.collect do |p| | |
23 | - [p.id,0,0] | |
24 | - end | |
25 | - h[:author] = { | |
26 | - name: author.name, | |
27 | - email: author.email, | |
28 | - icon: icon | |
29 | - } | |
30 | - h[:time] = time | |
31 | - h[:space] = spaces.first | |
32 | - h[:parent_spaces] = parent_spaces | |
33 | - h[:refs] = refs.collect{|r|r.name}.join(" ") unless refs.nil? | |
34 | - h[:id] = sha | |
35 | - h[:date] = date | |
36 | - h[:message] = message | |
37 | - h | |
38 | - end | |
39 | - | |
40 | 20 | def add_refs(ref_cache, repo) |
41 | 21 | if ref_cache.empty? |
42 | 22 | repo.refs.each do |ref| | ... | ... |
app/models/graph/json_builder.rb
... | ... | @@ -19,13 +19,6 @@ module Graph |
19 | 19 | @days = index_commits |
20 | 20 | end |
21 | 21 | |
22 | - def to_json(*args) | |
23 | - { | |
24 | - days: @days.compact.map { |d| [d.day, d.strftime("%b")] }, | |
25 | - commits: @commits.map(&:to_graph_hash) | |
26 | - }.to_json(*args) | |
27 | - end | |
28 | - | |
29 | 22 | protected |
30 | 23 | |
31 | 24 | # Get commits from repository | ... | ... |
... | ... | @@ -0,0 +1,26 @@ |
1 | +<% self.formats = ["html"] %> | |
2 | + | |
3 | +<%= raw( | |
4 | + { | |
5 | + days: @graph.days.compact.map { |d| [d.day, d.strftime("%b")] }, | |
6 | + commits: @graph.commits.map do |c| | |
7 | + { | |
8 | + parents: c.parents.collect do |p| | |
9 | + [p.id,0,0] | |
10 | + end, | |
11 | + author: { | |
12 | + name: c.author.name, | |
13 | + email: c.author.email, | |
14 | + icon: gravatar_icon(c.author.email, 20) | |
15 | + }, | |
16 | + time: c.time, | |
17 | + space: c.spaces.first, | |
18 | + parent_spaces: c.parent_spaces, | |
19 | + refs: join_with_space(c.refs), | |
20 | + id: c.sha, | |
21 | + date: c.date, | |
22 | + message: c.message, | |
23 | + } | |
24 | + end | |
25 | + }.to_json | |
26 | +) %> | ... | ... |