Class: LcpRuby::Display::Renderers::InternalLink

Inherits:
BaseRenderer
  • Object
show all
Defined in:
lib/lcp_ruby/display/renderers/internal_link.rb

Constant Summary collapse

SAFE_HREF_PATTERN =
%r{\A(/|https?://)}i

Instance Method Summary collapse

Instance Method Details

Returns:

  • (Boolean)


17
18
19
# File 'lib/lcp_ruby/display/renderers/internal_link.rb', line 17

def link_producing?
  true
end

#render(value, options = {}, record: nil, view_context: nil) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/lcp_ruby/display/renderers/internal_link.rb', line 7

def render(value, options = {}, record: nil, view_context: nil)
  return nil if value.blank?

  href = value.to_s
  return view_context.(:span, href, class: "lcp-internal-link") unless href.match?(SAFE_HREF_PATTERN)

  label = options["label"] || href
  view_context.(:a, label, href: href, class: "lcp-internal-link")
end