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



81
82
83
84
85
86
87
88
89
90
# File 'app/helpers/govuk_link_helper.rb', line 81

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



28
29
30
31
32
33
34
# File 'app/helpers/govuk_link_helper.rb', line 28

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


69
70
71
72
73
74
75
76
77
78
79
# File 'app/helpers/govuk_link_helper.rb', line 69

def govuk_button_link_to(name = nil, options = nil, extra_options = {}, &block)
  extra_options = options if block_given?
  html_options = GovukComponent::StartButtonComponent::LINK_ATTRIBUTES
    .merge 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



58
59
60
61
62
63
64
65
66
67
# File 'app/helpers/govuk_link_helper.rb', line 58

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(options, html_options, &block)
  else
    button_to(name, options, html_options)
  end
end


20
21
22
23
24
25
26
# File 'app/helpers/govuk_link_helper.rb', line 20

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


36
37
38
39
40
41
42
43
44
45
# File 'app/helpers/govuk_link_helper.rb', line 36

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



47
48
49
50
51
52
53
54
55
56
# File 'app/helpers/govuk_link_helper.rb', line 47

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