Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <zegerjan@gitlab.com>2016-04-06 23:13:06 +0300
committerZeger-Jan van de Weg <zegerjan@gitlab.com>2016-04-06 23:13:06 +0300
commit8b90502857fbc0a5e957f58c7e46554f3e14cc24 (patch)
tree4eb9c4c6ce27e6ee703465542bc3ed2b519768a9
parent339bf652c2330c43e95f565fa218c9c25e20f0c5 (diff)
Rename Emoji Award to Emoji Award
To make this work lib/award_emoji had to be namespaced under Gitlab, over private channels DouweM mentioned this could later maybe combined with the model
-rw-r--r--app/assets/javascripts/lib/emoji_aliases.js.coffee.erb2
-rw-r--r--app/controllers/concerns/toggle_award_emoji.rb (renamed from app/controllers/concerns/toggle_emoji_award.rb)8
-rw-r--r--app/controllers/projects/issues_controller.rb2
-rw-r--r--app/controllers/projects/merge_requests_controller.rb2
-rw-r--r--app/controllers/projects/notes_controller.rb14
-rw-r--r--app/controllers/projects_controller.rb2
-rw-r--r--app/models/award_emoji.rb (renamed from app/models/emoji_award.rb)2
-rw-r--r--app/models/concerns/awardable.rb36
-rw-r--r--app/models/note.rb6
-rw-r--r--app/services/create_award_emoji_service.rb (renamed from app/services/create_emoji_award_service.rb)6
-rw-r--r--app/services/notes/create_service.rb6
-rw-r--r--app/views/emoji_awards/_awards_block.html.haml2
-rw-r--r--app/views/emojis/index.html.haml4
-rw-r--r--config/initializers/inflections.rb4
-rw-r--r--config/routes.rb6
-rw-r--r--db/migrate/20160406185700_rename_emoji_award_to_award_emoji.rb5
-rw-r--r--db/schema.rb42
-rw-r--r--lib/award_emoji.rb70
-rw-r--r--lib/gitlab/award_emoji.rb72
-rw-r--r--lib/tasks/gemojione.rake2
20 files changed, 152 insertions, 141 deletions
diff --git a/app/assets/javascripts/lib/emoji_aliases.js.coffee.erb b/app/assets/javascripts/lib/emoji_aliases.js.coffee.erb
index 66f640a3cb7..97be65116e2 100644
--- a/app/assets/javascripts/lib/emoji_aliases.js.coffee.erb
+++ b/app/assets/javascripts/lib/emoji_aliases.js.coffee.erb
@@ -1,2 +1,2 @@
window.emojiAliases = ->
- JSON.parse('<%= AwardEmoji.aliases.to_json %>')
+ JSON.parse('<%= Gitlab::AwardEmoji.aliases.to_json %>')
diff --git a/app/controllers/concerns/toggle_emoji_award.rb b/app/controllers/concerns/toggle_award_emoji.rb
index 4ad9cbece21..561a84762f2 100644
--- a/app/controllers/concerns/toggle_emoji_award.rb
+++ b/app/controllers/concerns/toggle_award_emoji.rb
@@ -1,13 +1,13 @@
-module ToggleEmojiAward
+module ToggleAwardEmoji
extend ActiveSupport::Concern
included do
- before_action :authenticate_user!, only: [:toggle_emoji_award]
+ before_action :authenticate_user!, only: [:toggle_award_emoji]
end
- def toggle_emoji_award
+ def toggle_award_emoji
name = params.require(:name)
- CreateEmojiAwardService.new(project, current_user).execute(awardable, name)
+ CreateAwardEmojiService.new(project, current_user).execute(awardable, name)
render json: { ok: true }
end
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index 2ad6a71951c..0f7b8c39060 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -1,5 +1,5 @@
class Projects::IssuesController < Projects::ApplicationController
- include ToggleEmojiAward
+ include ToggleAwardEmoji
include ToggleSubscriptionAction
include IssuableActions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 4a939872ed6..1134f586060 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -1,5 +1,5 @@
class Projects::MergeRequestsController < Projects::ApplicationController
- include ToggleEmojiAward
+ include ToggleAwardEmoji
include ToggleSubscriptionAction
include DiffHelper
include IssuableActions
diff --git a/app/controllers/projects/notes_controller.rb b/app/controllers/projects/notes_controller.rb
index e5aa1b2a55b..2d3763b7f9e 100644
--- a/app/controllers/projects/notes_controller.rb
+++ b/app/controllers/projects/notes_controller.rb
@@ -1,5 +1,5 @@
class Projects::NotesController < Projects::ApplicationController
- include ToggleEmojiAward
+ include ToggleAwardEmoji
# Authorize
before_action :authorize_read_note!
@@ -22,7 +22,7 @@ class Projects::NotesController < Projects::ApplicationController
end
def create
- @note = Notes::CreateService.new(project, current_user, note_params.merge(create_emoji_awards: true)).execute
+ @note = Notes::CreateService.new(project, current_user, note_params.merge(create_award_emoji: true)).execute
respond_to do |format|
format.json { render json: note_json(@note) }
@@ -122,13 +122,13 @@ class Projects::NotesController < Projects::ApplicationController
discussion_html: note_to_discussion_html(note),
discussion_with_diff_html: note_to_discussion_with_diff_html(note)
}
- elsif note.emoji_award?
- emoji_award = note.emoji_award
+ elsif note.award_emoji?
+ create_award_emoj = note.award_emoji
{
- valid: emoji_award.valid?,
+ valid: award_emoji.valid?,
award: true,
- id: emoji_award.id,
- name: emoji_award.name
+ id: award_emoji.id,
+ name: award_emoji.name
}
else
{
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 62f53664db3..6e9524576de 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -138,7 +138,7 @@ class ProjectsController < Projects::ApplicationController
participants = ::Projects::ParticipantsService.new(@project, current_user).execute(note_type, note_id)
@suggestions = {
- emojis: AwardEmoji.urls,
+ emojis: Gitlab::AwardEmoji.urls,
issues: autocomplete.issues,
mergerequests: autocomplete.merge_requests,
members: participants
diff --git a/app/models/emoji_award.rb b/app/models/award_emoji.rb
index 309f34e2e3c..9a382c30896 100644
--- a/app/models/emoji_award.rb
+++ b/app/models/award_emoji.rb
@@ -1,4 +1,4 @@
-class EmojiAward < ActiveRecord::Base
+class AwardEmoji < ActiveRecord::Base
DOWNVOTE_NAME = "thumbsdown".freeze
UPVOTE_NAME = "thumbsup".freeze
diff --git a/app/models/concerns/awardable.rb b/app/models/concerns/awardable.rb
index cd1fb229f53..b17bf689a2d 100644
--- a/app/models/concerns/awardable.rb
+++ b/app/models/concerns/awardable.rb
@@ -2,25 +2,25 @@ module Awardable
extend ActiveSupport::Concern
included do
- has_many :emoji_awards, as: :awardable, dependent: :destroy
+ has_many :award_emoji, as: :awardable, dependent: :destroy
if self < Participable
- participant :emoji_awards
+ participant :award_emoji
end
end
module ClassMethods
def order_upvotes_desc
- order_votes_desc(EmojiAward::UPVOTE_NAME)
+ order_votes_desc(AwardEmoji::UPVOTE_NAME)
end
def order_downvotes_desc
- order_votes_desc(EmojiAward::DOWNVOTE_NAME)
+ order_votes_desc(AwardEmoji::DOWNVOTE_NAME)
end
def order_votes_desc(emoji_name)
awardable_table = self.arel_table
- awards_table = EmojiAward.arel_table
+ awards_table = AwardEmoji.arel_table
join_clause = awardable_table.join(awards_table, Arel::Nodes::OuterJoin).on(
awards_table[:awardable_id].eq(awardable_table[:id]).and(
@@ -30,27 +30,27 @@ module Awardable
)
).join_sources
- joins(join_clause).group(awardable_table[:id]).reorder("COUNT(emoji_awards.id) DESC")
+ joins(join_clause).group(awardable_table[:id]).reorder("COUNT(award_emoji.id) DESC")
end
end
def grouped_awards(with_thumbs = true)
- awards = emoji_awards.group_by(&:name)
+ awards = award_emoji.group_by(&:name)
if with_thumbs
- awards[EmojiAward::UPVOTE_NAME] ||= EmojiAward.none
- awards[EmojiAward::DOWNVOTE_NAME] ||= EmojiAward.none
+ awards[AwardEmoji::UPVOTE_NAME] ||= AwardEmoji.none
+ awards[AwardEmoji::DOWNVOTE_NAME] ||= AwardEmoji.none
end
awards
end
def downvotes
- emoji_awards.where(name: EmojiAward::DOWNVOTE_NAME).count
+ award_emoji.where(name: AwardEmoji::DOWNVOTE_NAME).count
end
def upvotes
- emoji_awards.where(name: EmojiAward::UPVOTE_NAME).count
+ award_emoji.where(name: AwardEmoji::UPVOTE_NAME).count
end
def emoji_awardable?
@@ -58,24 +58,24 @@ module Awardable
end
def awarded_emoji?(emoji_name, current_user)
- emoji_awards.where(name: emoji_name, user: current_user).exists?
+ award_emoji.where(name: emoji_name, user: current_user).exists?
end
- def award_emoji(emoji_name, current_user)
+ def add_award_emoji(emoji_name, current_user)
return unless emoji_awardable?
- emoji_awards.create(name: emoji_name, user: current_user)
+ award_emoji.create(name: emoji_name, user: current_user)
end
- def remove_emoji_award(emoji_name, current_user)
- emoji_awards.where(name: emoji_name, user: current_user).destroy_all
+ def remove_award_emoji(emoji_name, current_user)
+ award_emoji.where(name: emoji_name, user: current_user).destroy_all
end
- def toggle_emoji_award(emoji_name, current_user)
+ def toggle_award_emoji(emoji_name, current_user)
if awarded_emoji?(emoji_name, current_user)
remove_emoji_award(emoji_name, current_user)
else
- award_emoji(emoji_name, current_user)
+ add_award_emoji(emoji_name, current_user)
end
end
end
diff --git a/app/models/note.rb b/app/models/note.rb
index f613cb81c63..37ef2b0a793 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -27,7 +27,7 @@ class Note < ActiveRecord::Base
include Mentionable
include Awardable
- attr_accessor :emoji_award
+ attr_accessor :award_emoji
default_value_for :system, false
@@ -347,7 +347,7 @@ class Note < ActiveRecord::Base
emoji_awards_supported? && contains_only_emoji?
end
- def create_emoji_award
+ def create_award_emoji
self.emoji_award = self.noteable.award_emoji(emoji_award_name, self.author)
end
@@ -373,7 +373,7 @@ class Note < ActiveRecord::Base
def emoji_award_name
original_name = note.match(Banzai::Filter::EmojiFilter.emoji_pattern)[1]
- AwardEmoji.normalize_emoji_name(original_name)
+ Gitlab::AwardEmoji.normalize_emoji_name(original_name)
end
def contains_only_emoji?
diff --git a/app/services/create_emoji_award_service.rb b/app/services/create_award_emoji_service.rb
index 41dbb5b9f31..8bb2c6d715b 100644
--- a/app/services/create_emoji_award_service.rb
+++ b/app/services/create_award_emoji_service.rb
@@ -1,14 +1,14 @@
require_relative 'base_service'
-class CreateEmojiAwardService < BaseService
+class CreateAwardEmojiService < BaseService
# For an award emoji being posted we should:
# - Mark the TODO as done for this issuable (skip on snippets)
# - Save the award emoji
- def execute(awardable, item)
+ def execute(awardable, emoji)
issuable = to_issuable(awardable)
todo_service.award_emoji(issuable, current_user) if issuable
- awardable.toggle_emoji_award(item, current_user)
+ awardable.toggle_award_emoji(emoji, current_user)
end
private
diff --git a/app/services/notes/create_service.rb b/app/services/notes/create_service.rb
index 5cdf25333b0..a5083bcd2d0 100644
--- a/app/services/notes/create_service.rb
+++ b/app/services/notes/create_service.rb
@@ -1,15 +1,15 @@
module Notes
class CreateService < BaseService
def execute
- create_emoji_awards = params.delete(:create_emoji_awards)
+ create_award_emoji = params.delete(:create_award_emoji)
note = project.notes.new(params)
note.author = current_user
note.system = false
- if create_emoji_awards && note.emoji_award?
- note.create_emoji_award
+ if create_award_emoji && note.emoji_award?
+ note.create_award_emoji
return note
end
diff --git a/app/views/emoji_awards/_awards_block.html.haml b/app/views/emoji_awards/_awards_block.html.haml
index 1b840d88752..22ab96f6112 100644
--- a/app/views/emoji_awards/_awards_block.html.haml
+++ b/app/views/emoji_awards/_awards_block.html.haml
@@ -1,5 +1,5 @@
- grouped_emojis = awardable.grouped_awards(inline)
-.awards.js-awards-block{ class: ("hidden" if !inline && grouped_emojis.size == 0), data: { award_url: url_for([:toggle_emoji_award, @project.namespace.becomes(Namespace), @project, awardable]) } }
+.awards.js-awards-block{ class: ("hidden" if !inline && grouped_emojis.size == 0), data: { award_url: url_for([:toggle_award_emoji, @project.namespace.becomes(Namespace), @project, awardable]) } }
- awards_sort(grouped_emojis).each do |emoji, awards|
%button.btn.award-control.js-emoji-btn.has-tooltip{ type: "button", class: (award_active_class(awards, current_user)), title: award_user_list(awards, current_user), data: { placement: "bottom" } }
= emoji_icon(emoji)
diff --git a/app/views/emojis/index.html.haml b/app/views/emojis/index.html.haml
index 3443a8e2307..97401a2e618 100644
--- a/app/views/emojis/index.html.haml
+++ b/app/views/emojis/index.html.haml
@@ -1,9 +1,9 @@
.emoji-menu
.emoji-menu-content
= text_field_tag :emoji_search, "", class: "emoji-search search-input form-control"
- - AwardEmoji.emoji_by_category.each do |category, emojis|
+ - Gitlab::AwardEmoji.emoji_by_category.each do |category, emojis|
%h5.emoji-menu-title
- = AwardEmoji::CATEGORIES[category]
+ = Gitlab::AwardEmoji::CATEGORIES[category]
%ul.clearfix.emoji-menu-list
- emojis.each do |emoji|
%li.pull-left.text-center.emoji-menu-list-item
diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb
index 9e8b0131f8f..0af616cdad6 100644
--- a/config/initializers/inflections.rb
+++ b/config/initializers/inflections.rb
@@ -8,3 +8,7 @@
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
# end
+
+ActiveSupport::Inflector.inflections do |inflect|
+ inflect.uncountable %w(award_emoji)
+end
diff --git a/config/routes.rb b/config/routes.rb
index 235e73f2e98..1f7343bfc91 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -634,7 +634,7 @@ Rails.application.routes.draw do
post :cancel_merge_when_build_succeeds
get :ci_status
post :toggle_subscription
- post :toggle_emoji_award
+ post :toggle_award_emoji
post :remove_wip
end
@@ -699,7 +699,7 @@ Rails.application.routes.draw do
resources :issues, constraints: { id: /\d+/ } do
member do
post :toggle_subscription
- post :toggle_emoji_award
+ post :toggle_award_emoji
end
collection do
post :bulk_update
@@ -726,7 +726,7 @@ Rails.application.routes.draw do
resources :notes, only: [:index, :create, :destroy, :update], constraints: { id: /\d+/ } do
member do
delete :delete_attachment
- post :toggle_emoji_award
+ post :toggle_award_emoji
end
end
diff --git a/db/migrate/20160406185700_rename_emoji_award_to_award_emoji.rb b/db/migrate/20160406185700_rename_emoji_award_to_award_emoji.rb
new file mode 100644
index 00000000000..8d729167df0
--- /dev/null
+++ b/db/migrate/20160406185700_rename_emoji_award_to_award_emoji.rb
@@ -0,0 +1,5 @@
+class RenameEmojiAwardToAwardEmoji < ActiveRecord::Migration
+ def change
+ rename_table :emoji_awards, :award_emoji
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index b071a1d8c65..e4b0103cb50 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20160331133914) do
+ActiveRecord::Schema.define(version: 20160406185700) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -44,7 +44,6 @@ ActiveRecord::Schema.define(version: 20160331133914) do
t.datetime "updated_at"
t.string "home_page_url"
t.integer "default_branch_protection", default: 2
- t.boolean "twitter_sharing_enabled", default: true
t.text "restricted_visibility_levels"
t.boolean "version_check_enabled", default: true
t.integer "max_attachment_size", default: 10, null: false
@@ -71,11 +70,11 @@ ActiveRecord::Schema.define(version: 20160331133914) do
t.string "recaptcha_site_key"
t.string "recaptcha_private_key"
t.integer "metrics_port", default: 8089
+ t.boolean "akismet_enabled", default: false
+ t.string "akismet_api_key"
t.integer "metrics_sample_interval", default: 15
t.boolean "sentry_enabled", default: false
t.string "sentry_dsn"
- t.boolean "akismet_enabled", default: false
- t.string "akismet_api_key"
t.boolean "email_author_in_body", default: false
t.integer "default_group_visibility"
end
@@ -94,6 +93,19 @@ ActiveRecord::Schema.define(version: 20160331133914) do
add_index "audit_events", ["entity_id", "entity_type"], name: "index_audit_events_on_entity_id_and_entity_type", using: :btree
add_index "audit_events", ["type"], name: "index_audit_events_on_type", using: :btree
+ create_table "award_emoji", force: :cascade do |t|
+ t.string "name"
+ t.integer "user_id"
+ t.integer "awardable_id"
+ t.string "awardable_type"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ add_index "award_emoji", ["awardable_id"], name: "index_award_emoji_on_awardable_id", using: :btree
+ add_index "award_emoji", ["awardable_type"], name: "index_award_emoji_on_awardable_type", using: :btree
+ add_index "award_emoji", ["user_id"], name: "index_award_emoji_on_user_id", using: :btree
+
create_table "broadcast_messages", force: :cascade do |t|
t.text "message", null: false
t.datetime "starts_at"
@@ -364,19 +376,6 @@ ActiveRecord::Schema.define(version: 20160331133914) do
add_index "emails", ["email"], name: "index_emails_on_email", unique: true, using: :btree
add_index "emails", ["user_id"], name: "index_emails_on_user_id", using: :btree
- create_table "emoji_awards", force: :cascade do |t|
- t.string "name"
- t.integer "user_id"
- t.integer "awardable_id"
- t.string "awardable_type"
- t.datetime "created_at"
- t.datetime "updated_at"
- end
-
- add_index "emoji_awards", ["awardable_id"], name: "index_emoji_awards_on_awardable_id", using: :btree
- add_index "emoji_awards", ["awardable_type"], name: "index_emoji_awards_on_awardable_type", using: :btree
- add_index "emoji_awards", ["user_id"], name: "index_emoji_awards_on_user_id", using: :btree
-
create_table "events", force: :cascade do |t|
t.string "target_type"
t.integer "target_id"
@@ -430,9 +429,9 @@ ActiveRecord::Schema.define(version: 20160331133914) do
t.string "state"
t.integer "iid"
t.integer "updated_by_id"
- t.integer "moved_to_id"
t.boolean "confidential", default: false
t.datetime "deleted_at"
+ t.integer "moved_to_id"
end
add_index "issues", ["assignee_id"], name: "index_issues_on_assignee_id", using: :btree
@@ -756,6 +755,7 @@ ActiveRecord::Schema.define(version: 20160331133914) do
add_index "projects", ["namespace_id"], name: "index_projects_on_namespace_id", using: :btree
add_index "projects", ["path"], name: "index_projects_on_path", using: :btree
add_index "projects", ["path"], name: "index_projects_on_path_trigram", using: :gin, opclasses: {"path"=>"gin_trgm_ops"}
+ add_index "projects", ["pending_delete"], name: "index_projects_on_pending_delete", using: :btree
add_index "projects", ["runners_token"], name: "index_projects_on_runners_token", using: :btree
add_index "projects", ["star_count"], name: "index_projects_on_star_count", using: :btree
add_index "projects", ["visibility_level"], name: "index_projects_on_visibility_level", using: :btree
@@ -797,9 +797,9 @@ ActiveRecord::Schema.define(version: 20160331133914) do
t.string "type"
t.string "title"
t.integer "project_id"
- t.datetime "created_at", null: false
- t.datetime "updated_at", null: false
- t.boolean "active", null: false
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ t.boolean "active", default: false, null: false
t.text "properties"
t.boolean "template", default: false
t.boolean "push_events", default: true
diff --git a/lib/award_emoji.rb b/lib/award_emoji.rb
deleted file mode 100644
index 7c9d7ccfee0..00000000000
--- a/lib/award_emoji.rb
+++ /dev/null
@@ -1,70 +0,0 @@
-class AwardEmoji
- CATEGORIES = {
- other: "Other",
- objects: "Objects",
- places: "Places",
- travel_places: "Travel",
- emoticons: "Emoticons",
- objects_symbols: "Symbols",
- nature: "Nature",
- celebration: "Celebration",
- people: "People",
- activity: "Activity",
- flags: "Flags",
- food_drink: "Food"
- }.with_indifferent_access
-
- def self.normalize_emoji_name(name)
- aliases[name] || name
- end
-
- def self.emoji_by_category
- unless @emoji_by_category
- @emoji_by_category = {}
-
- emojis.each do |emoji_name, data|
- data["name"] = emoji_name
-
- @emoji_by_category[data["category"]] ||= []
- @emoji_by_category[data["category"]] << data
- end
-
- @emoji_by_category = @emoji_by_category.sort.to_h
- end
-
- @emoji_by_category
- end
-
- def self.emojis
- @emojis ||= begin
- json_path = File.join(Rails.root, 'fixtures', 'emojis', 'index.json' )
- JSON.parse(File.read(json_path))
- end
- end
-
- def self.aliases
- @aliases ||= begin
- json_path = File.join(Rails.root, 'fixtures', 'emojis', 'aliases.json' )
- JSON.parse(File.read(json_path))
- end
- end
-
- # Returns an Array of Emoji names and their asset URLs.
- def self.urls
- @urls ||= begin
- path = File.join(Rails.root, 'fixtures', 'emojis', 'digests.json')
- prefix = Gitlab::Application.config.assets.prefix
- digest = Gitlab::Application.config.assets.digest
-
- JSON.parse(File.read(path)).map do |hash|
- if digest
- fname = "#{hash['unicode']}-#{hash['digest']}"
- else
- fname = hash['unicode']
- end
-
- { name: hash['name'], path: "#{prefix}/#{fname}.png" }
- end
- end
- end
-end
diff --git a/lib/gitlab/award_emoji.rb b/lib/gitlab/award_emoji.rb
new file mode 100644
index 00000000000..0adcafd795c
--- /dev/null
+++ b/lib/gitlab/award_emoji.rb
@@ -0,0 +1,72 @@
+module Gitlab
+ class AwardEmoji
+ CATEGORIES = {
+ other: "Other",
+ objects: "Objects",
+ places: "Places",
+ travel_places: "Travel",
+ emoticons: "Emoticons",
+ objects_symbols: "Symbols",
+ nature: "Nature",
+ celebration: "Celebration",
+ people: "People",
+ activity: "Activity",
+ flags: "Flags",
+ food_drink: "Food"
+ }.with_indifferent_access
+
+ def self.normalize_emoji_name(name)
+ aliases[name] || name
+ end
+
+ def self.emoji_by_category
+ unless @emoji_by_category
+ @emoji_by_category = {}
+
+ emojis.each do |emoji_name, data|
+ data["name"] = emoji_name
+
+ @emoji_by_category[data["category"]] ||= []
+ @emoji_by_category[data["category"]] << data
+ end
+
+ @emoji_by_category = @emoji_by_category.sort.to_h
+ end
+
+ @emoji_by_category
+ end
+
+ def self.emojis
+ @emojis ||= begin
+ json_path = File.join(Rails.root, 'fixtures', 'emojis', 'index.json' )
+ JSON.parse(File.read(json_path))
+ end
+ end
+
+ def self.aliases
+ @aliases ||= begin
+ json_path = File.join(Rails.root, 'fixtures', 'emojis', 'aliases.json' )
+ JSON.parse(File.read(json_path))
+ end
+ end
+
+ # Returns an Array of Emoji names and their asset URLs.
+ def self.urls
+ @urls ||= begin
+ path = File.join(Rails.root, 'fixtures', 'emojis', 'digests.json')
+ prefix = Gitlab::Application.config.assets.prefix
+ digest = Gitlab::Application.config.assets.digest
+
+ JSON.parse(File.read(path)).map do |hash|
+ if digest
+ fname = "#{hash['unicode']}-#{hash['digest']}"
+ else
+ fname = hash['unicode']
+ end
+
+ { name: hash['name'], path: "#{prefix}/#{fname}.png" }
+ end
+ end
+ end
+ end
+end
diff --git a/lib/tasks/gemojione.rake b/lib/tasks/gemojione.rake
index 7ec00a898fd..481285f80cc 100644
--- a/lib/tasks/gemojione.rake
+++ b/lib/tasks/gemojione.rake
@@ -6,7 +6,7 @@ namespace :gemojione do
dir = Gemojione.index.images_path
- digests = AwardEmoji.emojis.map do |name, emoji_hash|
+ digests = Gitlab::AwardEmoji.emojis.map do |name, emoji_hash|
fpath = File.join(dir, "#{emoji_hash['unicode']}.png")
digest = Digest::SHA256.file(fpath).hexdigest