Commit 96cbad23 authored by Eric Eastwood's avatar Eric Eastwood

Fix up @DouweM review

parent f602efea
......@@ -46,6 +46,9 @@ require('./lib/utils/common_utils');
},
},
EmojiFilter: {
'img.emoji'(el, text) {
return el.getAttribute('alt');
},
'gl-emoji'(el, text) {
return `:${el.getAttribute('data-name')}:`;
},
......
......@@ -101,6 +101,6 @@ module Awardable
private
def normalize_name(name)
Gitlab::AwardEmoji.normalize_emoji_name(name)
Gitlab::Emoji.normalize_emoji_name(name)
end
end
require './spec/support/sidekiq'
Gitlab::Seeder.quiet do
emoji = Gitlab::AwardEmoji.emojis.keys
emoji = Gitlab::Emoji.emojis.keys
Issue.order(Gitlab::Database.random).limit(Issue.count / 2).each do |issue|
project = issue.project
......
module Gitlab
class AwardEmoji
def self.normalize_emoji_name(name)
aliases[name] || name
end
def self.emojis
Gitlab::Emoji.emojis
end
def self.aliases
Gitlab::Emoji.emojis_aliases
end
end
end
module Gitlab
module Emoji
extend self
@emoji_unicode_version = JSON.parse(File.read(File.absolute_path(File.dirname(__FILE__) + '/../../node_modules/emoji-unicode-version/emoji-unicode-version-map.json')))
@emoji_aliases = JSON.parse(File.read(File.join(Rails.root, 'fixtures', 'emojis', 'aliases.json')))
def emojis
Gemojione.index.instance_variable_get(:@emoji_by_name)
......@@ -21,7 +19,7 @@ module Gitlab
end
def emojis_aliases
@emoji_aliases
@emoji_aliases ||= JSON.parse(File.read(Rails.root.join('fixtures', 'emojis', 'aliases.json')))
end
def emoji_filename(name)
......@@ -33,7 +31,12 @@ module Gitlab
end
def emoji_unicode_version(name)
@emoji_unicode_version[name]
@emoji_unicode_versions_by_name ||= JSON.parse(File.read(Rails.root.join('node_modules', 'emoji-unicode-version', 'emoji-unicode-version-map.json')))
@emoji_unicode_versions_by_name[name]
end
def normalize_emoji_name(name)
emojis_aliases[name] || name
end
def emoji_image_tag(name, src)
......@@ -46,7 +49,22 @@ module Gitlab
emoji_info = emojis[emoji_name]
emoji_fallback_image_source = ActionController::Base.helpers.url_to_image("emoji/#{emoji_info['name']}.png")
emoji_fallback_sprite_class = "emoji-#{emoji_name}"
"<gl-emoji #{force_fallback && sprite ? "class='emoji-icon #{emoji_fallback_sprite_class}'" : ""} data-name='#{emoji_name}' #{image ? "data-fallback-src='#{emoji_fallback_image_source}'" : ""} #{sprite ? "data-fallback-sprite-class='#{emoji_fallback_sprite_class}'" : ""} data-unicode-version='#{emoji_unicode_version(emoji_name)}'>#{force_fallback && sprite === false ? emoji_image_tag(emoji_name, emoji_fallback_image_source) : emoji_info['moji']}</gl-emoji>"
data = {
name: emoji_name,
unicode_version: emoji_unicode_version(emoji_name)
}
data[:fallback_src] = emoji_fallback_image_source if image
data[:fallback_sprite_class] = emoji_fallback_sprite_class if sprite
ActionController::Base.helpers.content_tag 'gl-emoji',
class: ("emoji-icon #{emoji_fallback_sprite_class}" if force_fallback && sprite),
data: data do
if force_fallback && !sprite
emoji_image_tag(emoji_name, emoji_fallback_image_source)
else
emoji_info['moji']
end
end
end
end
end
......@@ -7,7 +7,7 @@ namespace :gemojione do
dir = Gemojione.images_path
resultant_emoji_map = {}
Gitlab::Emoji.emojis.map do |name, emoji_hash|
Gitlab::Emoji.emojis.each do |name, emoji_hash|
# Ignore aliases
unless Gitlab::Emoji.emojis_aliases.key?(name)
fpath = File.join(dir, "#{emoji_hash['unicode']}.png")
......@@ -56,11 +56,11 @@ namespace :gemojione do
SPRITESHEET_HEIGHT = 840
# Setup a map to rename image files
emoji_uncicode_string_to_name_map = {}
Gitlab::Emoji.emojis.map do |name, emoji_hash|
emoji_unicode_string_to_name_map = {}
Gitlab::Emoji.emojis.each do |name, emoji_hash|
# Ignore aliases
unless Gitlab::Emoji.emojis_aliases.key?(name)
emoji_uncicode_string_to_name_map[emoji_hash['unicode']] = name
emoji_unicode_string_to_name_map[emoji_hash['unicode']] = name
end
end
......@@ -69,11 +69,9 @@ namespace :gemojione do
FileUtils.rm_rf(emoji_dir)
FileUtils.mkdir_p(emoji_dir, mode: 0700)
FileUtils.cp_r(File.join(Gemojione.images_path, '.'), emoji_dir)
Dir.chdir(emoji_dir) do
Dir["**/*.png"].each do |png|
image_path = File.join(Dir.pwd, png)
rename_to_named_emoji_image!(emoji_uncicode_string_to_name_map, image_path)
end
Dir[File.join(emoji_dir, "**/*.png")].each do |png|
image_path = png
rename_to_named_emoji_image!(emoji_unicode_string_to_name_map, image_path)
end
Dir.mktmpdir do |tmpdir|
......@@ -181,18 +179,18 @@ namespace :gemojione do
end
EMOJI_IMAGE_PATH_RE = /(.*?)(([0-9a-f]-?)+)\.png$/i
def rename_to_named_emoji_image!(emoji_uncicode_string_to_name_map, image_path)
def rename_to_named_emoji_image!(emoji_unicode_string_to_name_map, image_path)
# Rename file from unicode to emoji name
matches = EMOJI_IMAGE_PATH_RE.match(image_path)
preceding_path = matches[1]
unicode_string = matches[2]
name = emoji_uncicode_string_to_name_map[unicode_string]
name = emoji_unicode_string_to_name_map[unicode_string]
if name
new_png_path = File.join(preceding_path, "#{name}.png")
FileUtils.mv(image_path, new_png_path)
new_png_path
else
puts "Warning: emoji_uncicode_string_to_name_map missing entry for #{unicode_string}. Full path: #{image_path}"
puts "Warning: emoji_unicode_string_to_name_map missing entry for #{unicode_string}. Full path: #{image_path}"
end
end
end
require 'spec_helper'
describe Gitlab::AwardEmoji do
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment