class SlackTransformer::Slack::Code

Constants

PATTERN

Attributes

input[R]

Public Class Methods

new(input) click to toggle source
# File lib/slack_transformer/slack/code.rb, line 20
def initialize(input)
  @input = input
end

Public Instance Methods

to_html() click to toggle source
# File lib/slack_transformer/slack/code.rb, line 24
def to_html
  input.gsub(PATTERN) do |match|
    closing_backticks = Regexp.last_match(2)
    closing_backticks_length = closing_backticks.length
    closing_backticks_remainder = closing_backticks_length % 3

    if closing_backticks_remainder == 0
      match
    else
      inner_text = Regexp.last_match(1)
      inner_trailing_backticks = '`' * (closing_backticks_length / 3 * 3)
      outer_trailing_backticks = '`' * (closing_backticks_remainder - 1)

      "<code>#{inner_text}#{inner_trailing_backticks}</code>#{outer_trailing_backticks}"
    end
  end
end