class Slacken::Filters::SanitizeLink

Public: Sanitize not allowed tags in links.

Public Instance Methods

call(component) click to toggle source
# File lib/slacken/filters/sanitize_link.rb, line 4
def call(component)
  if component.type.member_of?(%i(img a iframe))
    component.derive(
      component.children.map(&method(:sanitize))
    )
  else
    component.derive(
      component.children.map(&method(:call))
    )
  end
end
valid?(component) click to toggle source
# File lib/slacken/filters/sanitize_link.rb, line 16
def valid?(component)
  if component.type.member_of?(%i(img a iframe))
    component.children.all?(&method(:link_containers_sanitized?))
  else
    component.children.all?(&method(:valid?))
  end
end

Private Instance Methods

sanitize(component) click to toggle source
# File lib/slacken/filters/sanitize_link.rb, line 26
def sanitize(component)
  if component.type.allowed_in_link?
    component.derive(
      component.children.map(&method(:sanitize))
    )
  else
    # No block tags are allowed.
    component.derive(
      component.children.map(&method(:sanitize)),
      type: :span
    )
  end
end