Commit ff4471a3cd1d29228a67e582bc54bed952c0a8ee
1 parent
c33d5e16
Exists in
master
and in
4 other branches
Get rid of event decorator. Use event data hash instead commit objects to increase perfomance
Showing
6 changed files
with
48 additions
and
53 deletions
Show diff stats
app/decorators/event_decorator.rb
| @@ -1,44 +0,0 @@ | @@ -1,44 +0,0 @@ | ||
| 1 | -class EventDecorator < ApplicationDecorator | ||
| 2 | - decorates :event | ||
| 3 | - | ||
| 4 | - def feed_title | ||
| 5 | - if self.issue? | ||
| 6 | - "#{self.author_name} #{self.action_name} issue ##{self.target_id}: #{self.issue_title} at #{self.project.name}" | ||
| 7 | - elsif self.merge_request? | ||
| 8 | - "#{self.author_name} #{self.action_name} MR ##{self.target_id}: #{self.merge_request_title} at #{self.project.name}" | ||
| 9 | - elsif self.push? | ||
| 10 | - "#{self.author_name} #{self.push_action_name} #{self.ref_type} #{self.ref_name} at #{self.project.name}" | ||
| 11 | - elsif self.membership_changed? | ||
| 12 | - "#{self.author_name} #{self.action_name} #{self.project.name}" | ||
| 13 | - else | ||
| 14 | - "" | ||
| 15 | - end | ||
| 16 | - end | ||
| 17 | - | ||
| 18 | - def feed_url | ||
| 19 | - if self.issue? | ||
| 20 | - h.project_issue_url(self.project, self.issue) | ||
| 21 | - elsif self.merge_request? | ||
| 22 | - h.project_merge_request_url(self.project, self.merge_request) | ||
| 23 | - | ||
| 24 | - elsif self.push? | ||
| 25 | - if self.push_with_commits? | ||
| 26 | - if self.commits_count > 1 | ||
| 27 | - h.project_compare_url(self.project, :from => self.parent_commit.id, :to => self.last_commit.id) | ||
| 28 | - else | ||
| 29 | - h.project_commit_url(self.project, :id => self.last_commit.id) | ||
| 30 | - end | ||
| 31 | - else | ||
| 32 | - h.project_commits_url(self.project, self.ref_name) | ||
| 33 | - end | ||
| 34 | - end | ||
| 35 | - end | ||
| 36 | - | ||
| 37 | - def feed_summary | ||
| 38 | - if self.issue? | ||
| 39 | - h.render "events/event_issue", issue: self.issue | ||
| 40 | - elsif self.push? | ||
| 41 | - h.render "events/event_push", event: self | ||
| 42 | - end | ||
| 43 | - end | ||
| 44 | -end |
app/helpers/events_helper.rb
| @@ -42,4 +42,45 @@ module EventsHelper | @@ -42,4 +42,45 @@ module EventsHelper | ||
| 42 | EventFilter.team => "icon-user", | 42 | EventFilter.team => "icon-user", |
| 43 | } | 43 | } |
| 44 | end | 44 | end |
| 45 | + | ||
| 46 | + def event_feed_title(event) | ||
| 47 | + if event.issue? | ||
| 48 | + "#{event.author_name} #{event.action_name} issue ##{event.target_id}: #{event.issue_title} at #{event.project.name}" | ||
| 49 | + elsif event.merge_request? | ||
| 50 | + "#{event.author_name} #{event.action_name} MR ##{event.target_id}: #{event.merge_request_title} at #{event.project.name}" | ||
| 51 | + elsif event.push? | ||
| 52 | + "#{event.author_name} #{event.push_action_name} #{event.ref_type} #{event.ref_name} at #{event.project.name}" | ||
| 53 | + elsif event.membership_changed? | ||
| 54 | + "#{event.author_name} #{event.action_name} #{event.project.name}" | ||
| 55 | + else | ||
| 56 | + "" | ||
| 57 | + end | ||
| 58 | + end | ||
| 59 | + | ||
| 60 | + def event_feed_url(event) | ||
| 61 | + if event.issue? | ||
| 62 | + project_issue_url(event.project, event.issue) | ||
| 63 | + elsif event.merge_request? | ||
| 64 | + project_merge_request_url(event.project, event.merge_request) | ||
| 65 | + | ||
| 66 | + elsif event.push? | ||
| 67 | + if event.push_with_commits? | ||
| 68 | + if event.commits_count > 1 | ||
| 69 | + project_compare_url(event.project, from: event.commit_from, to: event.commit_to) | ||
| 70 | + else | ||
| 71 | + project_commit_url(event.project, id: event.commit_to) | ||
| 72 | + end | ||
| 73 | + else | ||
| 74 | + project_commits_url(event.project, event.ref_name) | ||
| 75 | + end | ||
| 76 | + end | ||
| 77 | + end | ||
| 78 | + | ||
| 79 | + def event_feed_summary(event) | ||
| 80 | + if event.issue? | ||
| 81 | + render "events/event_issue", issue: event.issue | ||
| 82 | + elsif event.push? | ||
| 83 | + render "events/event_push", event: event | ||
| 84 | + end | ||
| 85 | + end | ||
| 45 | end | 86 | end |
app/views/events/_event_push.atom.haml
| 1 | -%div{:xmlns => "http://www.w3.org/1999/xhtml"} | 1 | +%div{xmlns: "http://www.w3.org/1999/xhtml"} |
| 2 | - event.commits.first(15).each do |commit| | 2 | - event.commits.first(15).each do |commit| |
| 3 | %p | 3 | %p |
| 4 | - %strong= commit.author_name | ||
| 5 | - = link_to "(##{commit.short_id})", project_commit_path(event.project, :id => commit.id) | 4 | + %strong= commit[:author][:name] |
| 5 | + = link_to "(##{commit[:id][0...8]})", project_commit_path(event.project, id: commit[:id]) | ||
| 6 | %i | 6 | %i |
| 7 | at | 7 | at |
| 8 | - = commit.committed_date.strftime("%Y-%m-%d %H:%M:%S") | ||
| 9 | - %blockquote= simple_format(escape_once(commit.safe_message)) | 8 | + = commit[:timestamp].to_time.to_s(:short) |
| 9 | + %blockquote= simple_format(escape_once(commit[:message])) | ||
| 10 | - if event.commits_count > 15 | 10 | - if event.commits_count > 15 |
| 11 | %p | 11 | %p |
| 12 | %i | 12 | %i |
app/views/events/event/_push.html.haml
| @@ -21,5 +21,5 @@ | @@ -21,5 +21,5 @@ | ||
| 21 | %li.commits-stat | 21 | %li.commits-stat |
| 22 | - if event.commits_count > 2 | 22 | - if event.commits_count > 2 |
| 23 | %span ... and #{event.commits_count - 2} more commits. | 23 | %span ... and #{event.commits_count - 2} more commits. |
| 24 | - = link_to project_compare_path(event.project, from: event.parent_commit.id, to: event.last_commit.id) do | ||
| 25 | - %strong Compare → #{event.parent_commit.id[0..7]}...#{event.last_commit.id[0..7]} | 24 | + = link_to project_compare_path(event.project, from: event.commit_from, to: event.commit_to) do |
| 25 | + %strong Compare → #{event.commit_from[0..7]}...#{event.commit_to[0..7]} |
app/views/groups/show.atom.builder
| @@ -8,7 +8,6 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://sear | @@ -8,7 +8,6 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://sear | ||
| 8 | 8 | ||
| 9 | @events.each do |event| | 9 | @events.each do |event| |
| 10 | if event.proper? | 10 | if event.proper? |
| 11 | - event = EventDecorator.decorate(event) | ||
| 12 | xml.entry do | 11 | xml.entry do |
| 13 | event_link = event.feed_url | 12 | event_link = event.feed_url |
| 14 | event_title = event.feed_title | 13 | event_title = event.feed_title |
app/views/teams/show.atom.builder
| @@ -8,7 +8,6 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://sear | @@ -8,7 +8,6 @@ xml.feed "xmlns" => "http://www.w3.org/2005/Atom", "xmlns:media" => "http://sear | ||
| 8 | 8 | ||
| 9 | @events.each do |event| | 9 | @events.each do |event| |
| 10 | if event.proper? | 10 | if event.proper? |
| 11 | - event = EventDecorator.decorate(event) | ||
| 12 | xml.entry do | 11 | xml.entry do |
| 13 | event_link = event.feed_url | 12 | event_link = event.feed_url |
| 14 | event_title = event.feed_title | 13 | event_title = event.feed_title |