summaryrefslogtreecommitdiff
path: root/app/helpers/emails_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers/emails_helper.rb')
-rw-r--r--app/helpers/emails_helper.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/app/helpers/emails_helper.rb b/app/helpers/emails_helper.rb
new file mode 100644
index 00000000000..92cc9c426b8
--- /dev/null
+++ b/app/helpers/emails_helper.rb
@@ -0,0 +1,42 @@
+module EmailsHelper
+
+ # Google Actions
+ # https://developers.google.com/gmail/markup/reference/go-to-action
+ def email_action(url)
+ name = action_title(url)
+ if name
+ data = {
+ "@context" => "http://schema.org",
+ "@type" => "EmailMessage",
+ "action" => {
+ "@type" => "ViewAction",
+ "name" => name,
+ "url" => url,
+ }
+ }
+
+ content_tag :script, type: 'application/ld+json' do
+ data.to_json.html_safe
+ end
+ end
+ end
+
+ def action_title(url)
+ return unless url
+ ["merge_requests", "issues", "commit"].each do |action|
+ if url.split("/").include?(action)
+ return "View #{action.humanize.singularize}"
+ end
+ end
+ end
+
+ def add_email_highlight_css
+ Rugments::Themes::Github.render(scope: '.highlight')
+ end
+
+ def color_email_diff(diffcontent)
+ formatter = Rugments::Formatters::HTML.new(cssclass: 'highlight')
+ lexer = Rugments::Lexers::Diff.new
+ raw formatter.format(lexer.lex(diffcontent))
+ end
+end