Module: EmailsHelper

Defined in:
app/helpers/emails_helper.rb

Instance Method Summary collapse

Instance Method Details

#action_title(url) ⇒ Object


24
25
26
27
28
29
30
31
32
33
# File 'app/helpers/emails_helper.rb', line 24

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

  nil
end

#color_email_diff(diffcontent) ⇒ Object


35
36
37
38
39
# File 'app/helpers/emails_helper.rb', line 35

def color_email_diff(diffcontent)
  formatter = Rouge::Formatters::HTML.new(css_class: 'highlight', inline_theme: 'github')
  lexer = Rouge::Lexers::Diff
  raw formatter.format(lexer.lex(diffcontent))
end

#email_action(url) ⇒ Object


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/helpers/emails_helper.rb', line 5

def email_action(url)
  name = action_title(url)
  if name
    data = {
      "@context" => "http://schema.org",
      "@type" => "EmailMessage",
      "action" => {
        "@type" => "ViewAction",
        "name" => name,
        "url" => url,
        }
      }

     :script, type: 'application/ld+json' do
      data.to_json.html_safe
    end
  end
end

#password_reset_token_valid_timeObject


41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/helpers/emails_helper.rb', line 41

def password_reset_token_valid_time
  valid_hours = Devise.reset_password_within / 60 / 60
  if valid_hours >= 24
    unit = 'day'
    valid_length = (valid_hours / 24).floor
  else
    unit = 'hour'
    valid_length = valid_hours.floor
  end

  pluralize(valid_length, unit)
end

#reset_token_expire_messageObject


54
55
56
57
58
# File 'app/helpers/emails_helper.rb', line 54

def reset_token_expire_message
  link_tag = link_to('request a new one', new_user_password_url(user_email: @user.email))
  msg = "This link is valid for #{password_reset_token_valid_time}.  "
  msg << "After it expires, you can #{link_tag}."
end