diff options
-rw-r--r-- | app/assets/javascripts/copy_as_gfm.js | 3 | ||||
-rw-r--r-- | app/models/concerns/awardable.rb | 2 | ||||
-rw-r--r-- | db/fixtures/development/15_award_emoji.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/award_emoji.rb | 15 | ||||
-rw-r--r-- | lib/gitlab/emoji.rb | 28 | ||||
-rw-r--r-- | lib/tasks/gemojione.rake | 22 | ||||
-rw-r--r-- | spec/lib/gitlab/award_emoji_spec.rb | 4 |
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 |