Sha256: c5ade4249e266709fe228330da11cb90f1d0fb6073bf1faaadd82aa69662432a

Contents?: true

Size: 682 Bytes

Versions: 31

Compression:

Stored size: 682 Bytes

Contents

# ~*~ encoding: utf-8 ~*~

# Emoji
#
# Render emoji such as :smile:
class Gollum::Filter::Emoji < Gollum::Filter

  EXTRACT_PATTERN = %r{
    (?<!\[{2})
    :(?<name>[\w-]+):
    (?!\]{^2})
  }ix

  PROCESS_PATTERN = %r{
    =EEMMOOJJII=
    (?<name>[\w-]+)
    =IIJJOOMMEE=
  }ix

  def extract(data)
    data.gsub! EXTRACT_PATTERN do
      emoji_exists?($~[:name]) ? "=EEMMOOJJII=#{$~[:name]}=IIJJOOMMEE=" : $&
    end
    data
  end

  def process(data)
    data.gsub! PROCESS_PATTERN, %q(<img src="/emoji/\k<name>" alt="\k<name>" class="emoji">)
    data
  end

  private

  def emoji_exists?(name)
    @index ||= Gemojione::Index.new
    !!@index.find_by_name(name)
  end

end

Version data entries

31 entries across 31 versions & 2 rubygems

Version Path
gitlab-gollum-lib-4.2.7.10.gitlab.2 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.10.gitlab.1 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.9 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.8 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.7 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.6 lib/gollum-lib/filter/emoji.rb
gollum-lib-4.2.10-java lib/gollum-lib/filter/emoji.rb
gollum-lib-4.2.10 lib/gollum-lib/filter/emoji.rb
gollum-lib-4.2.9-java lib/gollum-lib/filter/emoji.rb
gollum-lib-4.2.9 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.5 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.4 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.3 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.2 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7.1 lib/gollum-lib/filter/emoji.rb
gitlab-gollum-lib-4.2.7 lib/gollum-lib/filter/emoji.rb
gollum-lib-4.2.7-java lib/gollum-lib/filter/emoji.rb
gollum-lib-4.2.7 lib/gollum-lib/filter/emoji.rb
gollum-lib-5.0.a.3-java lib/gollum-lib/filter/emoji.rb
gollum-lib-5.0.a.3 lib/gollum-lib/filter/emoji.rb