Class: SlackMarkdown::Filters::EmojiFilter

Inherits:
HTML::Pipeline::EmojiFilter
  • Object
show all
Defined in:
lib/slack_markdown/filters/emoji_filter.rb

Instance Method Summary collapse

Instance Method Details

#emoji_namesObject



16
17
18
# File 'lib/slack_markdown/filters/emoji_filter.rb', line 16

def emoji_names
  self.class.superclass.emoji_names
end

#emoji_patternObject



12
13
14
# File 'lib/slack_markdown/filters/emoji_filter.rb', line 12

def emoji_pattern
  @emoji_pattern ||= /:(#{(emoji_names + original_emoji_names).map { |name| Regexp.escape(name) }.join('|')}):/
end

#emoji_url(name) ⇒ Object



8
9
10
# File 'lib/slack_markdown/filters/emoji_filter.rb', line 8

def emoji_url(name)
  emoji_names.include?(name) ? super : original_emoji_path(name)
end

#original_emoji_namesObject



24
25
26
# File 'lib/slack_markdown/filters/emoji_filter.rb', line 24

def original_emoji_names
  original_emoji_set.keys
end

#original_emoji_path(name) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/slack_markdown/filters/emoji_filter.rb', line 28

def original_emoji_path(name)
  path = original_emoji_set[name]

  if (matches = path.match(/\Aalias:(.+)\z/))
    emoji_url(matches[1])
  else
    path
  end
end

#original_emoji_setObject



20
21
22
# File 'lib/slack_markdown/filters/emoji_filter.rb', line 20

def original_emoji_set
  context[:original_emoji_set] || {}
end