--- /dev/null
+class EventDecorator < ApplicationDecorator
+ decorates :event
+
+ def feed_title
+ if self.issue?
+ "#{self.author_name} #{self.action_name} issue ##{self.target_id}:" + self.issue_title
+ elsif self.merge_request?
+ "#{self.author_name} #{self.action_name} MR ##{self.target_id}:" + self.merge_request_title
+ elsif self.push?
+ "#{self.author_name} #{self.push_action_name} #{self.ref_type} " + self.ref_name
+ else
+ ""
+ end
+ end
+
+ def feed_url
+ if self.issue?
+ h.project_issue_url(self.project, self.issue)
+ elsif self.merge_request?
+ h.project_merge_request_url(self.project, self.merge_request)
+ elsif self.push?
+ h.project_commits_url(self.project, :ref => self.ref_name)
+ end
+ end
+end
@events.each do |event|
if event.allowed?
+ event = EventDecorator.decorate(event)
xml.entry do
- if event.issue?
- event_link = project_issue_url(event.project, event.issue)
- event_title = event.issue_title
- elsif event.merge_request?
- event_link = project_merge_request_url(event.project, event.merge_request)
- event_title = event.merge_request_title
- elsif event.push?
- event_link = project_commits_url(event.project, :ref => event.ref_name)
- event_title = event.ref_name
- end
+ event_link = event.feed_url
+ event_title = event.feed_title
xml.id "tag:#{request.host},#{event.created_at.strftime("%Y-%m-%d")}:#{event.id}"
xml.link :href => event_link