class Stepmod::Utils::Converters::Strong

Constants

BLANK_CHARS

Public Instance Methods

convert(node, state = {}) click to toggle source
# File lib/stepmod/utils/converters/strong.rb, line 9
def convert(node, state = {})
  content = treat_children(node, state.merge(already_strong: true))
  if content.strip.empty? || state[:already_strong]
    content
  else
    handle_express_escape_seq(node,
                              "#{content[/^\s*/]}*#{content.strip}*#{content[/\s*$/]}")
  end
end

Private Instance Methods

braces_sibling?(sibling, end_of_text = false) click to toggle source
# File lib/stepmod/utils/converters/strong.rb, line 32
def braces_sibling?(sibling, end_of_text = false)
  match = end_of_text ? /\($/ : /^\)/
  sibling&.text? && sibling.text =~ match
end
handle_express_escape_seq(node, content) click to toggle source
# File lib/stepmod/utils/converters/strong.rb, line 21
def handle_express_escape_seq(node, content)
  res = content
  if braces_sibling?(node.previous, true)
    res = "#{BLANK_CHARS}#{res}"
  end
  if braces_sibling?(node.next)
    res = "#{res}#{BLANK_CHARS}"
  end
  res
end