class Slacken::Filters::SanitizeHeadline

Public: Sanitize not allowed tags in headline.

Public Instance Methods

call(component) click to toggle source
# File lib/slacken/filters/sanitize_headline.rb, line 4
def call(component)
  # NOTE: each special tag (list, headline, and table) is not allowed to occur
  #       in another type special tags.
  if component.type.name =~ /h\d/
    component.derive(component.children.map(&method(:sanitize_headline)))
  else
    component.derive(component.children.map(&method(:call)))
  end
end
valid?(component) click to toggle source
# File lib/slacken/filters/sanitize_headline.rb, line 14
def valid?(component)
  if component.type.name =~ /h\d/
    component.children.all?(&method(:headline_sanitized?))
  else
    component.children.all?(&method(:valid?))
  end
end

Private Instance Methods

headline_sanitized?(component) click to toggle source
# File lib/slacken/filters/sanitize_headline.rb, line 38
def headline_sanitized?(component)
  if component.type.allowed_in_headline?
    component.children.all?(&method(:headline_sanitized?))
  else
    false
  end
end
sanitize_headline(component) click to toggle source
# File lib/slacken/filters/sanitize_headline.rb, line 24
def sanitize_headline(component)
  if component.type.allowed_in_headline?
    component.derive(
      component.children.map(&method(:sanitize_headline))
    )
  else
    # No block tags are allowed.
    component.derive(
      component.children.map(&method(:sanitize_headline)),
      type: :span
    )
  end
end