class Slacken::Filters::ElimLineBreaks

Public: Remove line breaks from texts.

Public Instance Methods

call(component) click to toggle source
# File lib/slacken/filters/elim_line_breaks.rb, line 4
def call(component)
  case component.type.name
  when :pre
    component
  when :text
    new_content = component.attrs[:content].gsub(/[\r\n]/, '')
    component.derive(
      component.children,
      attrs: component.attrs.merge(content: new_content)
    )
  else
    component.derive(
      component.children.map(&method(:call))
    )
  end
end
has_no_line_breaks?(component) click to toggle source
# File lib/slacken/filters/elim_line_breaks.rb, line 25
def has_no_line_breaks?(component)
  case component.type.name
  when :pre
    true
  when :text
    !component.attrs[:content].match(/[\r\n]/)
  else
    component.children.all?(&method(:has_no_line_breaks?))
  end
end
valid?(component) click to toggle source
# File lib/slacken/filters/elim_line_breaks.rb, line 21
def valid?(component)
  has_no_line_breaks?(component)
end