class RSSView
Attributes
base_url[R]
Public Class Methods
new(base_url, wiki_title, url, changes)
click to toggle source
# File lib/gollum/views/rss.rb, line 9 def initialize(base_url, wiki_title, url, changes) @base_url = base_url @wiki_title = wiki_title @url = url @changes = changes end
Public Instance Methods
render()
click to toggle source
# File lib/gollum/views/rss.rb, line 16 def render RSS::Maker.make('2.0') do |maker| maker.channel.author = 'Gollum Wiki' maker.channel.description = "Latest Changes in #{@wiki_title}" maker.channel.link = latest_changes_url maker.channel.title = "#{@wiki_title} Latest Changes" maker.channel.updated = @changes.first.authored_date @changes.each do |change| maker.items.new_item do |item| item.description = feed_item_description(change) item.link = latest_changes_url item.title = feed_item_title(change) item.updated = change.authored_date end end end.to_s end
Private Instance Methods
feed_item_commit_body(change)
click to toggle source
# File lib/gollum/views/rss.rb, line 37 def feed_item_commit_body(change) body = change.message.lines[1..-1].join body = body.split(/\n{2}/).map { |paragraph| "<p>#{paragraph}</p>" }.join body.gsub!(/\n/, ' ') body end
feed_item_description(change)
click to toggle source
# File lib/gollum/views/rss.rb, line 44 def feed_item_description(change) ERB.new(<<~HTML_PARTIAL) <%= feed_item_commit_body(change) %> Committed by: <a href="mailto:<%= change.author.email %>"> <%= change.author.name %> </a><br /> Commit ID: <%= change.id[0..6] %><br /><br /> <%= feed_item_files(change) %> HTML_PARTIAL .result(binding) end
feed_item_files(change)
click to toggle source
# File lib/gollum/views/rss.rb, line 56 def feed_item_files(change) file_list = change.stats.files.map { |change_files| [ change_files[:old_file], change_files[:new_file] ].compact } ERB.new(<<~HTML_PARTIAL) Affected files: <ul> <% file_list.each do |change_files| %> <% change_files.each do |file| %> <% file_href = "%s%s/%s" % [@url, page_route(file), change.id] %> <li><a href="<%= file_href %>"><%= file %></a></li> <% end %> <% end %> </ul> HTML_PARTIAL .result(binding) end
feed_item_title(change)
click to toggle source
# File lib/gollum/views/rss.rb, line 77 def feed_item_title(change) change.message.lines.first.strip end
latest_changes_url()
click to toggle source
# File lib/gollum/views/rss.rb, line 81 def latest_changes_url "%s%s" % [@url, latest_changes_path] end