Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/bindings/swig/ruby/svn/commit-mailer.rb view on Meta::CPAN
def x_id
"X-SVN-Commit-Id: #{@info.entire_sha256}"
end
def utf8_to_utf7(utf8)
require 'iconv'
Iconv.conv("UTF-7", "UTF-8", utf8)
rescue InvalidEncoding
begin
Iconv.conv("UTF7", "UTF8", utf8)
rescue Exception
nil
end
rescue Exception
nil
end
def truncate_body(body, use_utf7)
return body if body.size < @max_size
truncated_body = body[0, @max_size]
formatted_size = self.class.format_size(@max_size)
truncated_message = "... truncated to #{formatted_size}\n"
truncated_message = utf8_to_utf7(truncated_message) if use_utf7
truncated_message_size = truncated_message.size
lf_index = truncated_body.rindex(/(?:\r|\r\n|\n)/)
while lf_index
if lf_index + truncated_message_size < @max_size
truncated_body[lf_index, @max_size] = "\n#{truncated_message}"
break
else
lf_index = truncated_body.rindex(/(?:\r|\r\n|\n)/, lf_index - 1)
end
end
truncated_body
end
def make_rss(base_rss)
RSS::Maker.make("1.0") do |maker|
maker.encoding = "UTF-8"
maker.channel.about = @rss_uri
maker.channel.title = rss_title
maker.channel.link = @repository_uri
maker.channel.description = rss_description
maker.channel.dc_date = @info.date
if base_rss
base_rss.items.each do |item|
item.setup_maker(maker)
end
end
diff_info.each do |name, infos|
infos.each do |desc, link|
item = maker.items.new_item
item.title = name
item.description = @info.log
item.content_encoded = "<pre>#{RSS::Utils.html_escape(desc)}</pre>"
item.link = link
item.dc_date = @info.date
item.dc_creator = @info.author
end
end
maker.items.do_sort = true
maker.items.max_size = 15
end
end
def rss_title
@rss_title || @name || @repository_uri
end
def rss_description
@rss_description || "Repository of #{@name || @repository_uri}"
end
end
end
( run in 1.736 second using v1.01-cache-2.11-cpan-5623c5533a1 )