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
link_containers_sanitized?(component)
click to toggle source
# File lib/slacken/filters/sanitize_link.rb, line 40 def link_containers_sanitized?(component) if component.type.allowed_in_link? component.children.all?(&method(:link_containers_sanitized?)) else false end end
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