1. Don't use instance variables, use `let` instead.
2. Add descriptions for all specs.
3. Share variables where possible.
4. Give labels more vivid names than 1, 2, and 3.
5. Remove deprecation warnings by passing issue IDs as '1,2,3' instead
of an array, as that's how they're passed by the front-end. (The
deprecation warning is for passing a nested array, which is what
happens if an actual array is passed, as:
`[1, 2, 3].split(',') == [[1, 2, 3]]`
The spritesheet should only load when an award emoji picker is opened.
This makes sure that the emoji spritesheet is loaded **only** when the emoji picker is opened. This saves 250-650KB on every page load.
Prevents !3785 from reverting the fix from !3449.
cc: @jschatz1 @zj @fatihacet
See merge request !4469
Remove unnecessary vendor prefixes for browsers we no longer support.
Pretty simple, just removes a few prefixed properties for browsers we don't support.
See merge request !4368
Replace colorize gem with rainbow.
## What does this MR do?
It replaces the [colorize](https://github.com/fazibear/colorize) gem with [rainbow](https://github.com/sickill/rainbow).
## Are there points in the code the reviewer needs to double check?
Make sure all relevant modified rake tasks still work. I checked repeatedly using `git grep 'color'` that all uses of any `.color` method were replaced by their Rainbow equivalent, you'll want to double check. We (should have, at least) [only used ANSI colors](https://github.com/sickill/rainbow#ansi-colors), so black, red, green, yellow, blue, magenta, cyan, and white.
Note that colorize will still be required by Spinach, but since we only use Spinach in the test/dev environments, this isn't a problem. To ensure 100% that tasks run without requiring colorize, you may wish to try removing all spinach-related gems, running `bundle install`, and then `gem uninstall colorize` before running them. I tested all tasks that could be run in dev with Spinach enabled, and then a handful after removing Spinach and uninstalling colorize, and saw no failures or errors in either case.
## Why was this MR needed?
Colorize is a GPLv2 gem, which means that we cannot use it without ourselves being GPL'd, which we are not. This is the last gem we use that was breaking the terms of the GPL, so I took it upon myself to remove it.
Some argue that libraries can be used without GPL'ing the product itself, but the [GNU Project](http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL), as well as [the Open Source Initiative](https://opensource.org/faq#linking-proprietary-code) disagrees. Out of an abundance of caution, having researched various software licenses extensively, and in the interest of covering ourselves legally, I'm going to go with that interpretation of the license.
An attempt at relicensing Colorize was made, but didn’t succeed as the library owner hasn't responded more than four weeks after attempting contact.
## What are the relevant issue numbers?
!3775, gitlab-com/operations#164
cc: @sytses, @rspeicher, @rabbitfang, @rymai
See merge request !4425
Colorize is a gem licensed under the GPLv2, so we can’t use it in GitLab without relicensing GitLab under the terms of the GPL. Rainbow is licensed under the MIT license and does the exact same thing as Colorize, so Rainbow was added in place of Colorize.
The syntax is slightly different for Rainbow vs. Colorize, and was updated in accordance.
The gem is still a dependency of Spinach, so it’s included in the development/test environments, but won’t be packaged with the actual product, and therefore doesn’t require we relicense the product.
An attempt at relicensing Colorize was made, but didn’t succeed as the library owner never responded.
Rainbow library: https://github.com/sickill/rainbow
Relevant issue regarding licensing in GitLab's gems: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3775
Awardables
TODO:
- [x] Fix specs
- [x] Write new specs
- [X] Check if the migrations can stay offline migrations -- (seems not to make 8.8)
- [X] API expose Awards -> Next merge window
See merge request !3785