summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/copy_as_gfm.js3
-rw-r--r--app/models/concerns/awardable.rb2
-rw-r--r--db/fixtures/development/15_award_emoji.rb2
-rw-r--r--lib/gitlab/award_emoji.rb15
-rw-r--r--lib/gitlab/emoji.rb28
-rw-r--r--lib/tasks/gemojione.rake22
-rw-r--r--spec/lib/gitlab/award_emoji_spec.rb4
7 files changed, 38 insertions, 38 deletions
diff --git a/app/assets/javascripts/copy_as_gfm.js b/app/assets/javascripts/copy_as_gfm.js
index 7e63d6ea07b..ba8ed19e9da 100644
--- a/app/assets/javascripts/copy_as_gfm.js
+++ b/app/assets/javascripts/copy_as_gfm.js
@@ -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')}:`;
},
diff --git a/app/models/concerns/awardable.rb b/app/models/concerns/awardable.rb
index 073ac4c1b65..a7fd0a15f0f 100644
--- a/app/models/concerns/awardable.rb
+++ b/app/models/concerns/awardable.rb
@@ -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
diff --git a/db/fixtures/development/15_award_emoji.rb b/db/fixtures/development/15_award_emoji.rb
index ea343c26b69..137a036edaf 100644
--- a/db/fixtures/development/15_award_emoji.rb
+++ b/db/fixtures/development/15_award_emoji.rb
@@ -1,7 +1,7 @@
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
diff --git a/lib/gitlab/award_emoji.rb b/lib/gitlab/award_emoji.rb
deleted file mode 100644
index 6f104850d34..00000000000
--- a/lib/gitlab/award_emoji.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-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
diff --git a/lib/gitlab/emoji.rb b/lib/gitlab/emoji.rb
index 3ef92abd3cf..42703545c4f 100644
--- a/lib/gitlab/emoji.rb
+++ b/lib/gitlab/emoji.rb
@@ -1,8 +1,6 @@
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
diff --git a/lib/tasks/gemojione.rake b/lib/tasks/gemojione.rake
index b8a6ba7e77c..1f93b5a4dd2 100644
--- a/lib/tasks/gemojione.rake
+++ b/lib/tasks/gemojione.rake
@@ -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
diff --git a/spec/lib/gitlab/award_emoji_spec.rb b/spec/lib/gitlab/award_emoji_spec.rb
deleted file mode 100644
index ff45733feeb..00000000000
--- a/spec/lib/gitlab/award_emoji_spec.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-require 'spec_helper'
-
-describe Gitlab::AwardEmoji do
-end