Module: GovukLinkHelper

Defined in:
app/helpers/govuk_link_helper.rb

Constant Summary collapse

{
  inverse:          "govuk-link--inverse",
  muted:            "govuk-link--muted",
  no_underline:     "govuk-link--no-underline",
  no_visited_state: "govuk-link--no-visited-state",
  text_colour:      "govuk-link--text-colour",
}.freeze
BUTTON_STYLES =
{
  disabled:  "govuk-button--disabled",
  secondary: "govuk-button--secondary",
  warning:   "govuk-button--warning",
}.freeze

Instance Method Summary collapse

Instance Method Details



76
77
78
79
80
81
82
83
84
85
# File 'app/helpers/govuk_link_helper.rb', line 76

def govuk_breadcrumb_link_to(name = nil, options = nil, extra_options = {}, &block)
  extra_options = options if block_given?
  html_options = build_html_options(extra_options, style: :breadcrumb)

  if block_given?
    link_to(name, html_options, &block)
  else
    link_to(name, options, html_options)
  end
end

#govuk_button_classes(*styles, default_class: 'govuk-button') ⇒ Object



24
25
26
27
28
29
30
# File 'app/helpers/govuk_link_helper.rb', line 24

def govuk_button_classes(*styles, default_class: 'govuk-button')
  if (invalid_styles = (styles - BUTTON_STYLES.keys)) && invalid_styles.any?
    fail(ArgumentError, "invalid styles #{invalid_styles.to_sentence}. Valid styles are #{BUTTON_STYLES.keys.to_sentence}")
  end

  [default_class] + BUTTON_STYLES.values_at(*styles).compact
end


65
66
67
68
69
70
71
72
73
74
# File 'app/helpers/govuk_link_helper.rb', line 65

def govuk_button_link_to(name = nil, options = nil, extra_options = {}, &block)
  extra_options = options if block_given?
  html_options = build_html_options(extra_options, style: :button)

  if block_given?
    link_to(name, html_options, &block)
  else
    link_to(name, options, html_options)
  end
end

#govuk_button_to(name = nil, options = nil, extra_options = {}, &block) ⇒ Object



54
55
56
57
58
59
60
61
62
63
# File 'app/helpers/govuk_link_helper.rb', line 54

def govuk_button_to(name = nil, options = nil, extra_options = {}, &block)
  extra_options = options if block_given?
  html_options = build_html_options(extra_options, style: :button)

  if block_given?
    button_to(name, html_options, &block)
  else
    button_to(name, options, html_options)
  end
end


16
17
18
19
20
21
22
# File 'app/helpers/govuk_link_helper.rb', line 16

def govuk_link_classes(*styles, default_class: 'govuk-link')
  if (invalid_styles = (styles - LINK_STYLES.keys)) && invalid_styles.any?
    fail(ArgumentError, "invalid styles #{invalid_styles.to_sentence}. Valid styles are #{LINK_STYLES.keys.to_sentence}")
  end

  [default_class] + LINK_STYLES.values_at(*styles).compact
end


32
33
34
35
36
37
38
39
40
41
# File 'app/helpers/govuk_link_helper.rb', line 32

def govuk_link_to(name = nil, options = nil, extra_options = {}, &block)
  extra_options = options if block_given?
  html_options = build_html_options(extra_options)

  if block_given?
    link_to(name, html_options, &block)
  else
    link_to(name, options, html_options)
  end
end

#govuk_mail_to(email_address, name = nil, extra_options = {}, &block) ⇒ Object



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

def govuk_mail_to(email_address, name = nil, extra_options = {}, &block)
  extra_options = name if block_given?
  html_options = build_html_options(extra_options)

  if block_given?
    mail_to(email_address, html_options, &block)
  else
    mail_to(email_address, name, html_options)
  end
end