devise_token_auth 0.2.0 → 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of devise_token_auth might be problematic. Click here for more details.

Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/Rakefile +9 -4
  4. data/app/controllers/devise_token_auth/application_controller.rb +5 -7
  5. data/app/controllers/devise_token_auth/concerns/resource_finder.rb +2 -2
  6. data/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +18 -10
  7. data/app/controllers/devise_token_auth/confirmations_controller.rb +2 -2
  8. data/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +17 -23
  9. data/app/controllers/devise_token_auth/passwords_controller.rb +23 -27
  10. data/app/controllers/devise_token_auth/registrations_controller.rb +17 -15
  11. data/app/controllers/devise_token_auth/sessions_controller.rb +8 -12
  12. data/app/controllers/devise_token_auth/token_validations_controller.rb +3 -3
  13. data/app/controllers/devise_token_auth/unlocks_controller.rb +10 -12
  14. data/app/models/devise_token_auth/concerns/user.rb +27 -36
  15. data/config/initializers/devise.rb +1 -1
  16. data/lib/devise_token_auth.rb +6 -6
  17. data/lib/devise_token_auth/controllers/helpers.rb +14 -4
  18. data/lib/devise_token_auth/engine.rb +11 -13
  19. data/lib/devise_token_auth/errors.rb +1 -1
  20. data/lib/devise_token_auth/rails/routes.rb +29 -29
  21. data/lib/devise_token_auth/url.rb +6 -4
  22. data/lib/devise_token_auth/version.rb +1 -1
  23. data/lib/generators/devise_token_auth/install_generator.rb +52 -39
  24. data/lib/generators/devise_token_auth/install_views_generator.rb +5 -5
  25. data/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +1 -1
  26. data/lib/generators/devise_token_auth/templates/{user.rb → user.rb.erb} +0 -0
  27. data/test/controllers/custom/custom_confirmations_controller_test.rb +3 -1
  28. data/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +2 -0
  29. data/test/controllers/custom/custom_passwords_controller_test.rb +4 -2
  30. data/test/controllers/custom/custom_registrations_controller_test.rb +6 -8
  31. data/test/controllers/custom/custom_sessions_controller_test.rb +5 -5
  32. data/test/controllers/custom/custom_token_validations_controller_test.rb +3 -3
  33. data/test/controllers/demo_group_controller_test.rb +2 -6
  34. data/test/controllers/demo_mang_controller_test.rb +2 -5
  35. data/test/controllers/demo_user_controller_test.rb +8 -17
  36. data/test/controllers/devise_token_auth/confirmations_controller_test.rb +2 -2
  37. data/test/controllers/devise_token_auth/passwords_controller_test.rb +13 -9
  38. data/test/controllers/devise_token_auth/registrations_controller_test.rb +8 -8
  39. data/test/controllers/devise_token_auth/sessions_controller_test.rb +22 -33
  40. data/test/controllers/devise_token_auth/token_validations_controller_test.rb +2 -6
  41. data/test/controllers/devise_token_auth/unlocks_controller_test.rb +1 -1
  42. data/test/controllers/overrides/confirmations_controller_test.rb +3 -1
  43. data/test/controllers/overrides/omniauth_callbacks_controller_test.rb +3 -1
  44. data/test/controllers/overrides/passwords_controller_test.rb +25 -29
  45. data/test/controllers/overrides/registrations_controller_test.rb +4 -2
  46. data/test/controllers/overrides/sessions_controller_test.rb +4 -4
  47. data/test/controllers/overrides/token_validations_controller_test.rb +3 -3
  48. data/test/dummy/app/controllers/custom/confirmations_controller.rb +0 -2
  49. data/test/dummy/app/controllers/custom/passwords_controller.rb +1 -4
  50. data/test/dummy/app/controllers/custom/registrations_controller.rb +1 -2
  51. data/test/dummy/app/controllers/custom/sessions_controller.rb +1 -3
  52. data/test/dummy/app/controllers/custom/token_validations_controller.rb +1 -3
  53. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +3 -3
  54. data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +3 -3
  55. data/test/dummy/app/controllers/overrides/passwords_controller.rb +5 -5
  56. data/test/dummy/app/controllers/overrides/registrations_controller.rb +2 -2
  57. data/test/dummy/app/controllers/overrides/sessions_controller.rb +8 -10
  58. data/test/dummy/app/controllers/overrides/token_validations_controller.rb +3 -5
  59. data/test/dummy/app/helpers/application_helper.rb +1027 -1036
  60. data/test/dummy/app/models/scoped_user.rb +2 -2
  61. data/test/dummy/app/models/unregisterable_user.rb +2 -2
  62. data/test/dummy/app/models/user.rb +1 -1
  63. data/test/dummy/config.ru +5 -3
  64. data/test/dummy/config/application.rb +2 -2
  65. data/test/dummy/config/boot.rb +2 -2
  66. data/test/dummy/config/environment.rb +1 -1
  67. data/test/dummy/config/environments/development.rb +3 -3
  68. data/test/dummy/config/environments/test.rb +1 -1
  69. data/test/dummy/config/initializers/omniauth.rb +2 -2
  70. data/test/dummy/config/routes.rb +10 -29
  71. data/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +8 -8
  72. data/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +7 -7
  73. data/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +4 -4
  74. data/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +7 -7
  75. data/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +7 -7
  76. data/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +7 -7
  77. data/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +6 -6
  78. data/test/dummy/db/schema.rb +2 -60
  79. data/test/factories/users.rb +40 -0
  80. data/test/lib/devise_token_auth/url_test.rb +6 -6
  81. data/test/lib/generators/devise_token_auth/install_generator_test.rb +22 -14
  82. data/test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb +30 -22
  83. data/test/lib/generators/devise_token_auth/install_views_generator_test.rb +1 -1
  84. data/test/models/user_test.rb +15 -46
  85. data/test/support/controllers/routes.rb +43 -0
  86. data/test/test_helper.rb +12 -12
  87. metadata +8 -14
  88. data/test/dummy/app/models/evil_user.rb +0 -5
  89. data/test/dummy/app/models/nice_user.rb +0 -9
  90. data/test/dummy/db/migrate/20140928231203_devise_token_auth_create_evil_users.rb +0 -66
  91. data/test/dummy/db/migrate/20150409095712_devise_token_auth_create_nice_users.rb +0 -63
  92. data/test/integration/navigation_test.rb +0 -12
@@ -11,9 +11,7 @@ require 'test_helper'
11
11
  class DeviseTokenAuth::TokenValidationsControllerTest < ActionDispatch::IntegrationTest
12
12
  describe DeviseTokenAuth::TokenValidationsController do
13
13
  before do
14
- @resource = users(:confirmed_email_user)
15
- @resource.skip_confirmation!
16
- @resource.save!
14
+ @resource = create(:user, :confirmed)
17
15
 
18
16
  @auth_headers = @resource.create_new_auth_token
19
17
 
@@ -68,9 +66,7 @@ class DeviseTokenAuth::TokenValidationsControllerTest < ActionDispatch::Integrat
68
66
 
69
67
  describe 'using namespaces with unused resource' do
70
68
  before do
71
- @resource = scoped_users(:confirmed_email_user)
72
- @resource.skip_confirmation!
73
- @resource.save!
69
+ @resource = create(:scoped_user, :confirmed)
74
70
 
75
71
  @auth_headers = @resource.create_new_auth_token
76
72
 
@@ -35,7 +35,7 @@ class DeviseTokenAuth::UnlocksControllerTest < ActionController::TestCase
35
35
 
36
36
  describe 'Unlocking user' do
37
37
  before do
38
- @resource = lockable_users(:unlocked_user)
38
+ @resource = create(:lockable_user)
39
39
  end
40
40
 
41
41
  describe 'request unlock without email' do
@@ -9,10 +9,12 @@ require 'test_helper'
9
9
  # was the appropriate message delivered in the json payload?
10
10
 
11
11
  class Overrides::ConfirmationsControllerTest < ActionDispatch::IntegrationTest
12
+ include OverridesControllersRoutes
13
+
12
14
  describe Overrides::ConfirmationsController do
13
15
  before do
14
16
  @redirect_url = Faker::Internet.url
15
- @new_user = evil_users(:unconfirmed_email_user)
17
+ @new_user = create(:user)
16
18
 
17
19
  # generate + send email
18
20
  @new_user.send_confirmation_instructions(redirect_url: @redirect_url)
@@ -9,8 +9,10 @@ require 'test_helper'
9
9
  # was the appropriate message delivered in the json payload?
10
10
 
11
11
  class Overrides::OmniauthCallbacksControllerTest < ActionDispatch::IntegrationTest
12
+ include OverridesControllersRoutes
13
+
12
14
  describe Overrides::OmniauthCallbacksController do
13
- setup do
15
+ before do
14
16
  OmniAuth.config.test_mode = true
15
17
  OmniAuth.config.mock_auth[:facebook] = OmniAuth::AuthHash.new(
16
18
  provider: 'facebook',
@@ -9,41 +9,34 @@ require 'test_helper'
9
9
  # was the appropriate message delivered in the json payload?
10
10
 
11
11
  class Overrides::PasswordsControllerTest < ActionDispatch::IntegrationTest
12
+ include OverridesControllersRoutes
13
+
12
14
  describe Overrides::PasswordsController do
13
15
  before do
14
- @resource = evil_users(:confirmed_email_user)
15
- @redirect_url = Faker::Internet.url
16
+ @resource = create(:user, :confirmed)
16
17
 
17
18
  post '/evil_user_auth/password',
18
19
  params: {
19
20
  email: @resource.email,
20
- redirect_url: @redirect_url
21
+ redirect_url: Faker::Internet.url
21
22
  }
22
23
 
23
- @mail = ActionMailer::Base.deliveries.last
24
+ mail = ActionMailer::Base.deliveries.last
24
25
  @resource.reload
25
26
 
26
- @mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
27
- @mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=([^&]*)&/)[1])
28
- @mail_reset_token = @mail.body.match(/reset_password_token=(.*)\"/)[1]
27
+ mail_reset_token = mail.body.match(/reset_password_token=(.*)\"/)[1]
28
+ mail_redirect_url = CGI.unescape(mail.body.match(/redirect_url=([^&]*)&/)[1])
29
29
 
30
30
  get '/evil_user_auth/password/edit',
31
- params: { reset_password_token: @mail_reset_token,
32
- redirect_url: @mail_redirect_url }
31
+ params: {
32
+ reset_password_token: mail_reset_token,
33
+ redirect_url: mail_redirect_url
34
+ }
33
35
 
34
36
  @resource.reload
35
37
 
36
- raw_qs = response.location.split('?')[1]
37
- @qs = Rack::Utils.parse_nested_query(raw_qs)
38
-
39
- @access_token = @qs['access-token']
40
- @client = @qs['client']
41
- @client_id = @qs['client_id']
42
- @expiry = @qs['expiry']
43
- @override_proof = @qs['override_proof']
44
- @reset_password = @qs['reset_password']
45
- @token = @qs['token']
46
- @uid = @qs['uid']
38
+ _, raw_query_string = response.location.split('?')
39
+ @query_string = Rack::Utils.parse_nested_query(raw_query_string)
47
40
  end
48
41
 
49
42
  test 'response should have success redirect status' do
@@ -51,18 +44,21 @@ class Overrides::PasswordsControllerTest < ActionDispatch::IntegrationTest
51
44
  end
52
45
 
53
46
  test 'response should contain auth params + override proof' do
54
- assert @access_token
55
- assert @client
56
- assert @client_id
57
- assert @expiry
58
- assert @override_proof
59
- assert @reset_password
60
- assert @token
61
- assert @uid
47
+ assert @query_string['access-token']
48
+ assert @query_string['client']
49
+ assert @query_string['client_id']
50
+ assert @query_string['expiry']
51
+ assert @query_string['override_proof']
52
+ assert @query_string['reset_password']
53
+ assert @query_string['token']
54
+ assert @query_string['uid']
62
55
  end
63
56
 
64
57
  test 'override proof is correct' do
65
- assert_equal @override_proof, Overrides::PasswordsController::OVERRIDE_PROOF
58
+ assert_equal(
59
+ @query_string['override_proof'],
60
+ Overrides::PasswordsController::OVERRIDE_PROOF
61
+ )
66
62
  end
67
63
  end
68
64
  end
@@ -9,10 +9,12 @@ require 'test_helper'
9
9
  # was the appropriate message delivered in the json payload?
10
10
 
11
11
  class Overrides::RegistrationsControllerTest < ActionDispatch::IntegrationTest
12
+ include OverridesControllersRoutes
13
+
12
14
  describe Overrides::RegistrationsController do
13
15
  describe 'Succesful Registration update' do
14
- setup do
15
- @existing_user = evil_users(:confirmed_email_user)
16
+ before do
17
+ @existing_user = create(:user, :confirmed)
16
18
  @auth_headers = @existing_user.create_new_auth_token
17
19
  @client_id = @auth_headers['client']
18
20
  @favorite_color = 'pink'
@@ -9,15 +9,15 @@ require 'test_helper'
9
9
  # was the appropriate message delivered in the json payload?
10
10
 
11
11
  class Overrides::RegistrationsControllerTest < ActionDispatch::IntegrationTest
12
+ include OverridesControllersRoutes
13
+
12
14
  describe Overrides::RegistrationsController do
13
15
  before do
14
- @existing_user = evil_users(:confirmed_email_user)
15
- @existing_user.skip_confirmation!
16
- @existing_user.save!
16
+ @existing_user = create(:user, :confirmed)
17
17
 
18
18
  post '/evil_user_auth/sign_in',
19
19
  params: { email: @existing_user.email,
20
- password: 'secret123' }
20
+ password: @existing_user.password }
21
21
 
22
22
  @resource = assigns(:resource)
23
23
  @data = JSON.parse(response.body)
@@ -9,11 +9,11 @@ require 'test_helper'
9
9
  # was the appropriate message delivered in the json payload?
10
10
 
11
11
  class Overrides::TokenValidationsControllerTest < ActionDispatch::IntegrationTest
12
+ include OverridesControllersRoutes
13
+
12
14
  describe Overrides::TokenValidationsController do
13
15
  before do
14
- @resource = evil_users(:confirmed_email_user)
15
- @resource.skip_confirmation!
16
- @resource.save!
16
+ @resource = create(:user, :confirmed)
17
17
 
18
18
  @auth_headers = @resource.create_new_auth_token
19
19
 
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Custom::ConfirmationsController < DeviseTokenAuth::ConfirmationsController
4
-
5
4
  def show
6
5
  super do |resource|
7
6
  @show_block_called = true unless resource.nil?
@@ -11,5 +10,4 @@ class Custom::ConfirmationsController < DeviseTokenAuth::ConfirmationsController
11
10
  def show_block_called?
12
11
  @show_block_called == true
13
12
  end
14
-
15
13
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Custom::PasswordsController < DeviseTokenAuth::PasswordsController
4
-
5
4
  def create
6
5
  super do |resource|
7
6
  @create_block_called = true unless resource.nil?
@@ -35,8 +34,6 @@ class Custom::PasswordsController < DeviseTokenAuth::PasswordsController
35
34
  protected
36
35
 
37
36
  def render_update_success
38
- render json: {custom: "foo"}
37
+ render json: { custom: 'foo' }
39
38
  end
40
-
41
-
42
39
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Custom::RegistrationsController < DeviseTokenAuth::RegistrationsController
4
-
5
4
  def create
6
5
  super do |resource|
7
6
  @create_block_called = true
@@ -35,6 +34,6 @@ class Custom::RegistrationsController < DeviseTokenAuth::RegistrationsController
35
34
  protected
36
35
 
37
36
  def render_create_success
38
- render json: {custom: "foo"}
37
+ render json: { custom: 'foo' }
39
38
  end
40
39
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Custom::SessionsController < DeviseTokenAuth::SessionsController
4
-
5
4
  def create
6
5
  super do |resource|
7
6
  @create_block_called = true unless resource.nil?
@@ -25,7 +24,6 @@ class Custom::SessionsController < DeviseTokenAuth::SessionsController
25
24
  protected
26
25
 
27
26
  def render_create_success
28
- render json: {custom: "foo"}
27
+ render json: { custom: 'foo' }
29
28
  end
30
-
31
29
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Custom::TokenValidationsController < DeviseTokenAuth::TokenValidationsController
4
-
5
4
  def validate_token
6
5
  super do |resource|
7
6
  @validate_token_block_called = true unless resource.nil?
@@ -15,7 +14,6 @@ class Custom::TokenValidationsController < DeviseTokenAuth::TokenValidationsCont
15
14
  protected
16
15
 
17
16
  def render_validate_token_success
18
- render json: {custom: "foo"}
17
+ render json: { custom: 'foo' }
19
18
  end
20
-
21
19
  end
@@ -5,14 +5,14 @@ module Overrides
5
5
  def show
6
6
  @resource = resource_class.confirm_by_token(params[:confirmation_token])
7
7
 
8
- if @resource and @resource.id
8
+ if @resource && @resource.id
9
9
  client_id, token = @resource.create_token
10
10
  @resource.save!
11
11
 
12
12
  redirect_header_options = {
13
13
  account_confirmation_success: true,
14
14
  config: params[:config],
15
- override_proof: "(^^,)"
15
+ override_proof: '(^^,)'
16
16
  }
17
17
  redirect_headers = build_redirect_headers(token,
18
18
  client_id,
@@ -21,7 +21,7 @@ module Overrides
21
21
  redirect_to(@resource.build_auth_url(params[:redirect_url],
22
22
  redirect_headers))
23
23
  else
24
- raise ActionController::RoutingError.new('Not Found')
24
+ raise ActionController::RoutingError, 'Not Found'
25
25
  end
26
26
  end
27
27
  end
@@ -2,15 +2,15 @@
2
2
 
3
3
  module Overrides
4
4
  class OmniauthCallbacksController < DeviseTokenAuth::OmniauthCallbacksController
5
- DEFAULT_NICKNAME = "stimpy"
5
+ DEFAULT_NICKNAME = 'stimpy'.freeze
6
6
 
7
7
  def assign_provider_attrs(user, auth_hash)
8
- user.assign_attributes({
8
+ user.assign_attributes(
9
9
  nickname: DEFAULT_NICKNAME,
10
10
  name: auth_hash['info']['name'],
11
11
  image: auth_hash['info']['image'],
12
12
  email: auth_hash['info']['email']
13
- })
13
+ )
14
14
  end
15
15
  end
16
16
  end
@@ -2,15 +2,15 @@
2
2
 
3
3
  module Overrides
4
4
  class PasswordsController < DeviseTokenAuth::PasswordsController
5
- OVERRIDE_PROOF = "(^^,)"
5
+ OVERRIDE_PROOF = '(^^,)'.freeze
6
6
 
7
7
  # this is where users arrive after visiting the email confirmation link
8
8
  def edit
9
- @resource = resource_class.reset_password_by_token({
9
+ @resource = resource_class.reset_password_by_token(
10
10
  reset_password_token: resource_params[:reset_password_token]
11
- })
11
+ )
12
12
 
13
- if @resource and @resource.id
13
+ if @resource && @resource.id
14
14
  client_id, token = @resource.create_token
15
15
 
16
16
  # ensure that user is confirmed
@@ -28,7 +28,7 @@ module Overrides
28
28
  redirect_to(@resource.build_auth_url(params[:redirect_url],
29
29
  redirect_headers))
30
30
  else
31
- raise ActionController::RoutingError.new('Not Found')
31
+ raise ActionController::RoutingError, 'Not Found'
32
32
  end
33
33
  end
34
34
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Overrides
4
4
  class RegistrationsController < DeviseTokenAuth::RegistrationsController
5
- OVERRIDE_PROOF = "(^^,)"
5
+ OVERRIDE_PROOF = '(^^,)'.freeze
6
6
 
7
7
  def update
8
8
  if @resource
@@ -21,7 +21,7 @@ module Overrides
21
21
  else
22
22
  render json: {
23
23
  status: 'error',
24
- errors: ["User not found."]
24
+ errors: ['User not found.']
25
25
  }, status: 404
26
26
  end
27
27
  end
@@ -2,35 +2,33 @@
2
2
 
3
3
  module Overrides
4
4
  class SessionsController < DeviseTokenAuth::SessionsController
5
- OVERRIDE_PROOF = "(^^,)"
5
+ OVERRIDE_PROOF = '(^^,)'.freeze
6
6
 
7
7
  def create
8
8
  @resource = resource_class.find_by(email: resource_params[:email])
9
9
 
10
- if @resource and valid_params?(:email, resource_params[:email]) and @resource.valid_password?(resource_params[:password]) and @resource.confirmed?
10
+ if @resource && valid_params?(:email, resource_params[:email]) && @resource.valid_password?(resource_params[:password]) && @resource.confirmed?
11
11
  @client_id, @token = @resource.create_token
12
12
  @resource.save
13
13
 
14
14
  render json: {
15
- data: @resource.as_json(except: [
16
- :tokens, :created_at, :updated_at
17
- ]),
15
+ data: @resource.as_json(except: %i[tokens created_at updated_at]),
18
16
  override_proof: OVERRIDE_PROOF
19
17
  }
20
18
 
21
- elsif @resource and not @resource.confirmed?
19
+ elsif @resource && (not @resource.confirmed?)
22
20
  render json: {
23
21
  success: false,
24
22
  errors: [
25
- "A confirmation email was sent to your account at #{@resource.email}. "+
26
- "You must follow the instructions in the email before your account "+
27
- "can be activated"
23
+ "A confirmation email was sent to your account at #{@resource.email}. "\
24
+ 'You must follow the instructions in the email before your account '\
25
+ 'can be activated'
28
26
  ]
29
27
  }, status: 401
30
28
 
31
29
  else
32
30
  render json: {
33
- errors: ["Invalid login credentials. Please try again."]
31
+ errors: ['Invalid login credentials. Please try again.']
34
32
  }, status: 401
35
33
  end
36
34
  end
@@ -2,22 +2,20 @@
2
2
 
3
3
  module Overrides
4
4
  class TokenValidationsController < DeviseTokenAuth::TokenValidationsController
5
- OVERRIDE_PROOF = '(^^,)'
5
+ OVERRIDE_PROOF = '(^^,)'.freeze
6
6
 
7
7
  def validate_token
8
8
  # @resource will have been set by set_user_by_token concern
9
9
  if @resource
10
10
  render json: {
11
11
  success: true,
12
- data: @resource.as_json(except: [
13
- :tokens, :created_at, :updated_at
14
- ]),
12
+ data: @resource.as_json(except: %i[tokens created_at updated_at]),
15
13
  override_proof: OVERRIDE_PROOF
16
14
  }
17
15
  else
18
16
  render json: {
19
17
  success: false,
20
- errors: ["Invalid login credentials"]
18
+ errors: ['Invalid login credentials']
21
19
  }, status: 401
22
20
  end
23
21
  end
@@ -2,1066 +2,1057 @@
2
2
 
3
3
  module ApplicationHelper
4
4
  COLOR_NAMES = [
5
- "Acid green",
6
- "Aero",
7
- "Aero blue",
8
- "African violet",
9
- "Air Force blue",
10
- "Air superiority blue",
11
- "Alabama Crimson",
12
- "Alice blue",
13
- "Alizarin crimson",
14
- "Alloy orange",
15
- "Almond",
16
- "Amaranth",
17
- "Amaranth pink",
18
- "Amaranth purple",
19
- "Amazon",
20
- "Amber",
21
- "Amethyst",
22
- "Android green",
23
- "Anti-flash white",
24
- "Antique brass",
25
- "Antique bronze",
26
- "Antique fuchsia",
27
- "Antique ruby",
28
- "Antique white",
29
- "Ao",
30
- "Apple green",
31
- "Apricot",
32
- "Aqua",
33
- "Aquamarine",
34
- "Army green",
35
- "Arsenic",
36
- "Artichoke",
37
- "Arylide yellow",
38
- "Ash grey",
39
- "Asparagus",
40
- "Atomic tangerine",
41
- "Auburn",
42
- "Aureolin",
43
- "AuroMetalSaurus",
44
- "Avocado",
45
- "Azure",
46
- "Azure mist/web",
5
+ 'Acid green',
6
+ 'Aero',
7
+ 'Aero blue',
8
+ 'African violet',
9
+ 'Air Force blue',
10
+ 'Air superiority blue',
11
+ 'Alabama Crimson',
12
+ 'Alice blue',
13
+ 'Alizarin crimson',
14
+ 'Alloy orange',
15
+ 'Almond',
16
+ 'Amaranth',
17
+ 'Amaranth pink',
18
+ 'Amaranth purple',
19
+ 'Amazon',
20
+ 'Amber',
21
+ 'Amethyst',
22
+ 'Android green',
23
+ 'Anti-flash white',
24
+ 'Antique brass',
25
+ 'Antique bronze',
26
+ 'Antique fuchsia',
27
+ 'Antique ruby',
28
+ 'Antique white',
29
+ 'Ao',
30
+ 'Apple green',
31
+ 'Apricot',
32
+ 'Aqua',
33
+ 'Aquamarine',
34
+ 'Army green',
35
+ 'Arsenic',
36
+ 'Artichoke',
37
+ 'Arylide yellow',
38
+ 'Ash grey',
39
+ 'Asparagus',
40
+ 'Atomic tangerine',
41
+ 'Auburn',
42
+ 'Aureolin',
43
+ 'AuroMetalSaurus',
44
+ 'Avocado',
45
+ 'Azure',
46
+ 'Azure mist/web',
47
47
 
48
- "Baby blue",
49
- "Baby blue eyes",
50
- "Baby pink",
51
- "Baby powder",
52
- "Baker-Miller pink",
53
- "Ball blue",
54
- "Banana Mania",
55
- "Banana yellow",
56
- "Bangladesh green",
57
- "Barbie pink",
58
- "Barn red",
59
- "Battleship grey",
60
- "Bazaar",
61
- "Beau blue",
62
- "Beaver",
63
- "Beige",
48
+ 'Baby blue',
49
+ 'Baby blue eyes',
50
+ 'Baby pink',
51
+ 'Baby powder',
52
+ 'Baker-Miller pink',
53
+ 'Ball blue',
54
+ 'Banana Mania',
55
+ 'Banana yellow',
56
+ 'Bangladesh green',
57
+ 'Barbie pink',
58
+ 'Barn red',
59
+ 'Battleship grey',
60
+ 'Bazaar',
61
+ 'Beau blue',
62
+ 'Beaver',
63
+ 'Beige',
64
64
  "B'dazzled blue",
65
65
  "Big dip o'ruby",
66
- "Bisque",
67
- "Bistre",
68
- "Bistre brown",
69
- "Bitter lemon",
70
- "Bitter lime",
71
- "Bittersweet",
72
- "Bittersweet shimmer",
73
- "Black",
74
- "Black bean",
75
- "Black leather jacket",
76
- "Black olive",
77
- "Blanched almond",
78
- "Blast-off bronze",
79
- "Bleu de France",
80
- "Blizzard Blue",
81
- "Blond",
82
- "Blue",
83
- "Blue Bell",
84
- "Blue-gray",
85
- "Blue-green",
86
- "Blue sapphire",
87
- "Blue-violet",
88
- "Blue yonder",
89
- "Blueberry",
90
- "Bluebonnet",
91
- "Blush",
92
- "Bole",
93
- "Bondi blue",
94
- "Bone",
95
- "Boston University Red",
96
- "Bottle green",
97
- "Boysenberry",
98
- "Brandeis blue",
99
- "Brass",
100
- "Brick red",
101
- "Bright cerulean",
102
- "Bright green",
103
- "Bright lavender",
104
- "Bright lilac",
105
- "Bright maroon",
106
- "Bright navy blue",
107
- "Bright pink",
108
- "Bright turquoise",
109
- "Bright ube",
110
- "Brilliant lavender",
111
- "Brilliant rose",
112
- "Brink pink",
113
- "British racing green",
114
- "Bronze",
115
- "Bronze Yellow",
116
- "Brown",
117
- "Brown-nose",
118
- "Brunswick green",
119
- "Bubble gum",
120
- "Bubbles",
121
- "Buff",
122
- "Bud green",
123
- "Bulgarian rose",
124
- "Burgundy",
125
- "Burlywood",
126
- "Burnt orange",
127
- "Burnt sienna",
128
- "Burnt umber",
129
- "Byzantine",
130
- "Byzantium",
66
+ 'Bisque',
67
+ 'Bistre',
68
+ 'Bistre brown',
69
+ 'Bitter lemon',
70
+ 'Bitter lime',
71
+ 'Bittersweet',
72
+ 'Bittersweet shimmer',
73
+ 'Black',
74
+ 'Black bean',
75
+ 'Black leather jacket',
76
+ 'Black olive',
77
+ 'Blanched almond',
78
+ 'Blast-off bronze',
79
+ 'Bleu de France',
80
+ 'Blizzard Blue',
81
+ 'Blond',
82
+ 'Blue',
83
+ 'Blue Bell',
84
+ 'Blue-gray',
85
+ 'Blue-green',
86
+ 'Blue sapphire',
87
+ 'Blue-violet',
88
+ 'Blue yonder',
89
+ 'Blueberry',
90
+ 'Bluebonnet',
91
+ 'Blush',
92
+ 'Bole',
93
+ 'Bondi blue',
94
+ 'Bone',
95
+ 'Boston University Red',
96
+ 'Bottle green',
97
+ 'Boysenberry',
98
+ 'Brandeis blue',
99
+ 'Brass',
100
+ 'Brick red',
101
+ 'Bright cerulean',
102
+ 'Bright green',
103
+ 'Bright lavender',
104
+ 'Bright lilac',
105
+ 'Bright maroon',
106
+ 'Bright navy blue',
107
+ 'Bright pink',
108
+ 'Bright turquoise',
109
+ 'Bright ube',
110
+ 'Brilliant lavender',
111
+ 'Brilliant rose',
112
+ 'Brink pink',
113
+ 'British racing green',
114
+ 'Bronze',
115
+ 'Bronze Yellow',
116
+ 'Brown',
117
+ 'Brown-nose',
118
+ 'Brunswick green',
119
+ 'Bubble gum',
120
+ 'Bubbles',
121
+ 'Buff',
122
+ 'Bud green',
123
+ 'Bulgarian rose',
124
+ 'Burgundy',
125
+ 'Burlywood',
126
+ 'Burnt orange',
127
+ 'Burnt sienna',
128
+ 'Burnt umber',
129
+ 'Byzantine',
130
+ 'Byzantium',
131
131
 
132
- "Cadet",
133
- "Cadet blue",
134
- "Cadet grey",
135
- "Cadmium green",
136
- "Cadmium orange",
137
- "Cadmium red",
138
- "Cadmium yellow",
139
- "Cafe au lait",
140
- "Cafe noir",
141
- "Cal Poly Pomona green",
142
- "Cambridge Blue",
143
- "Camel",
144
- "Cameo pink",
145
- "Camouflage green",
146
- "Canary yellow",
147
- "Candy apple red",
148
- "Candy pink",
149
- "Capri",
150
- "Caput mortuum",
151
- "Cardinal",
152
- "Caribbean green",
153
- "Carmine",
154
- "Carmine",
155
- "Carmine pink",
156
- "Carmine red",
157
- "Carnation pink",
158
- "Carnelian",
159
- "Carolina blue",
160
- "Carrot orange",
161
- "Castleton green",
162
- "Catalina blue",
163
- "Catawba",
164
- "Cedar Chest",
165
- "Ceil",
166
- "Celadon",
167
- "Celadon blue",
168
- "Celadon green",
169
- "Celeste",
170
- "Celestial blue",
171
- "Cerise",
172
- "Cerise pink",
173
- "Cerulean",
174
- "Cerulean blue",
175
- "Cerulean frost",
176
- "CG Blue",
177
- "CG Red",
178
- "Chamoisee",
179
- "Champagne",
180
- "Charcoal",
181
- "Charleston green",
182
- "Charm pink",
183
- "Chartreuse",
184
- "Cherry",
185
- "Cherry blossom pink",
186
- "Chestnut",
187
- "China pink",
188
- "China rose",
189
- "Chinese red",
190
- "Chinese violet",
191
- "Chocolate",
192
- "Chrome yellow",
193
- "Cinereous",
194
- "Cinnabar",
195
- "Cinnamon",
196
- "Citrine",
197
- "Citron",
198
- "Claret",
199
- "Classic rose",
200
- "Cobalt",
201
- "Cocoa brown",
202
- "Coconut",
203
- "Coffee",
204
- "Columbia blue",
205
- "Congo pink",
206
- "Cool grey",
207
- "Copper",
208
- "Copper penny",
209
- "Copper red",
210
- "Copper rose",
211
- "Coquelicot",
212
- "Coral",
213
- "Coral pink",
214
- "Coral red",
215
- "Cordovan",
216
- "Corn",
217
- "Cornell Red",
218
- "Cornflower blue",
219
- "Cornsilk",
220
- "Cosmic latte",
221
- "Cotton candy",
222
- "Cream",
223
- "Crimson",
224
- "Crimson glory",
225
- "Cyan",
226
- "Cyber grape",
227
- "Cyber yellow",
132
+ 'Cadet',
133
+ 'Cadet blue',
134
+ 'Cadet grey',
135
+ 'Cadmium green',
136
+ 'Cadmium orange',
137
+ 'Cadmium red',
138
+ 'Cadmium yellow',
139
+ 'Cafe au lait',
140
+ 'Cafe noir',
141
+ 'Cal Poly Pomona green',
142
+ 'Cambridge Blue',
143
+ 'Camel',
144
+ 'Cameo pink',
145
+ 'Camouflage green',
146
+ 'Canary yellow',
147
+ 'Candy apple red',
148
+ 'Candy pink',
149
+ 'Capri',
150
+ 'Caput mortuum',
151
+ 'Cardinal',
152
+ 'Caribbean green',
153
+ 'Carmine',
154
+ 'Carmine',
155
+ 'Carmine pink',
156
+ 'Carmine red',
157
+ 'Carnation pink',
158
+ 'Carnelian',
159
+ 'Carolina blue',
160
+ 'Carrot orange',
161
+ 'Castleton green',
162
+ 'Catalina blue',
163
+ 'Catawba',
164
+ 'Cedar Chest',
165
+ 'Ceil',
166
+ 'Celadon',
167
+ 'Celadon blue',
168
+ 'Celadon green',
169
+ 'Celeste',
170
+ 'Celestial blue',
171
+ 'Cerise',
172
+ 'Cerise pink',
173
+ 'Cerulean',
174
+ 'Cerulean blue',
175
+ 'Cerulean frost',
176
+ 'CG Blue',
177
+ 'CG Red',
178
+ 'Chamoisee',
179
+ 'Champagne',
180
+ 'Charcoal',
181
+ 'Charleston green',
182
+ 'Charm pink',
183
+ 'Chartreuse',
184
+ 'Cherry',
185
+ 'Cherry blossom pink',
186
+ 'Chestnut',
187
+ 'China pink',
188
+ 'China rose',
189
+ 'Chinese red',
190
+ 'Chinese violet',
191
+ 'Chocolate',
192
+ 'Chrome yellow',
193
+ 'Cinereous',
194
+ 'Cinnabar',
195
+ 'Cinnamon',
196
+ 'Citrine',
197
+ 'Citron',
198
+ 'Claret',
199
+ 'Classic rose',
200
+ 'Cobalt',
201
+ 'Cocoa brown',
202
+ 'Coconut',
203
+ 'Coffee',
204
+ 'Columbia blue',
205
+ 'Congo pink',
206
+ 'Cool grey',
207
+ 'Copper',
208
+ 'Copper penny',
209
+ 'Copper red',
210
+ 'Copper rose',
211
+ 'Coquelicot',
212
+ 'Coral',
213
+ 'Coral pink',
214
+ 'Coral red',
215
+ 'Cordovan',
216
+ 'Corn',
217
+ 'Cornell Red',
218
+ 'Cornflower blue',
219
+ 'Cornsilk',
220
+ 'Cosmic latte',
221
+ 'Cotton candy',
222
+ 'Cream',
223
+ 'Crimson',
224
+ 'Crimson glory',
225
+ 'Cyan',
226
+ 'Cyber grape',
227
+ 'Cyber yellow',
228
228
 
229
- "Daffodil",
230
- "Dandelion",
231
- "Dark blue",
232
- "Dark blue-gray",
233
- "Dark brown",
234
- "Dark byzantium",
235
- "Dark candy apple red",
236
- "Dark cerulean",
237
- "Dark chestnut",
238
- "Dark coral",
239
- "Dark cyan",
240
- "Dark electric blue",
241
- "Dark goldenrod",
242
- "Dark gray",
243
- "Dark green",
244
- "Dark imperial blue",
245
- "Dark jungle green",
246
- "Dark khaki",
247
- "Dark lava",
248
- "Dark lavender",
249
- "Dark liver",
250
- "Dark magenta",
251
- "Dark medium gray",
252
- "Dark midnight blue",
253
- "Dark moss green",
254
- "Dark olive green",
255
- "Dark orange",
256
- "Dark orchid",
257
- "Dark pastel blue",
258
- "Dark pastel green",
259
- "Dark pastel purple",
260
- "Dark pastel red",
261
- "Dark pink",
262
- "Dark powder blue",
263
- "Dark puce",
264
- "Dark raspberry",
265
- "Dark red",
266
- "Dark salmon",
267
- "Dark scarlet",
268
- "Dark sea green",
269
- "Dark sienna",
270
- "Dark sky blue",
271
- "Dark slate blue",
272
- "Dark slate gray",
273
- "Dark spring green",
274
- "Dark tan",
275
- "Dark tangerine",
276
- "Dark taupe",
277
- "Dark terra cotta",
278
- "Dark turquoise",
279
- "Dark vanilla",
280
- "Dark violet",
281
- "Dark yellow",
282
- "Dartmouth green",
229
+ 'Daffodil',
230
+ 'Dandelion',
231
+ 'Dark blue',
232
+ 'Dark blue-gray',
233
+ 'Dark brown',
234
+ 'Dark byzantium',
235
+ 'Dark candy apple red',
236
+ 'Dark cerulean',
237
+ 'Dark chestnut',
238
+ 'Dark coral',
239
+ 'Dark cyan',
240
+ 'Dark electric blue',
241
+ 'Dark goldenrod',
242
+ 'Dark gray',
243
+ 'Dark green',
244
+ 'Dark imperial blue',
245
+ 'Dark jungle green',
246
+ 'Dark khaki',
247
+ 'Dark lava',
248
+ 'Dark lavender',
249
+ 'Dark liver',
250
+ 'Dark magenta',
251
+ 'Dark medium gray',
252
+ 'Dark midnight blue',
253
+ 'Dark moss green',
254
+ 'Dark olive green',
255
+ 'Dark orange',
256
+ 'Dark orchid',
257
+ 'Dark pastel blue',
258
+ 'Dark pastel green',
259
+ 'Dark pastel purple',
260
+ 'Dark pastel red',
261
+ 'Dark pink',
262
+ 'Dark powder blue',
263
+ 'Dark puce',
264
+ 'Dark raspberry',
265
+ 'Dark red',
266
+ 'Dark salmon',
267
+ 'Dark scarlet',
268
+ 'Dark sea green',
269
+ 'Dark sienna',
270
+ 'Dark sky blue',
271
+ 'Dark slate blue',
272
+ 'Dark slate gray',
273
+ 'Dark spring green',
274
+ 'Dark tan',
275
+ 'Dark tangerine',
276
+ 'Dark taupe',
277
+ 'Dark terra cotta',
278
+ 'Dark turquoise',
279
+ 'Dark vanilla',
280
+ 'Dark violet',
281
+ 'Dark yellow',
282
+ 'Dartmouth green',
283
283
  "Davy's grey",
284
- "Debian red",
285
- "Deep carmine",
286
- "Deep carmine pink",
287
- "Deep carrot orange",
288
- "Deep cerise",
289
- "Deep champagne",
290
- "Deep chestnut",
291
- "Deep coffee",
292
- "Deep fuchsia",
293
- "Deep jungle green",
294
- "Deep lemon",
295
- "Deep lilac",
296
- "Deep magenta",
297
- "Deep mauve",
298
- "Deep moss green",
299
- "Deep peach",
300
- "Deep pink",
301
- "Deep puce",
302
- "Deep ruby",
303
- "Deep saffron",
304
- "Deep sky blue",
305
- "Deep Space Sparkle",
306
- "Deep Taupe",
307
- "Deep Tuscan red",
308
- "Deer",
309
- "Denim",
310
- "Desert",
311
- "Desert sand",
312
- "Desire",
313
- "Diamond",
314
- "Dim gray",
315
- "Dirt",
316
- "Dodger blue",
317
- "Dogwood rose",
318
- "Dollar bill",
319
- "Donkey brown",
320
- "Drab",
321
- "Duke blue",
322
- "Dust storm",
323
- "Dutch white",
284
+ 'Debian red',
285
+ 'Deep carmine',
286
+ 'Deep carmine pink',
287
+ 'Deep carrot orange',
288
+ 'Deep cerise',
289
+ 'Deep champagne',
290
+ 'Deep chestnut',
291
+ 'Deep coffee',
292
+ 'Deep fuchsia',
293
+ 'Deep jungle green',
294
+ 'Deep lemon',
295
+ 'Deep lilac',
296
+ 'Deep magenta',
297
+ 'Deep mauve',
298
+ 'Deep moss green',
299
+ 'Deep peach',
300
+ 'Deep pink',
301
+ 'Deep puce',
302
+ 'Deep ruby',
303
+ 'Deep saffron',
304
+ 'Deep sky blue',
305
+ 'Deep Space Sparkle',
306
+ 'Deep Taupe',
307
+ 'Deep Tuscan red',
308
+ 'Deer',
309
+ 'Denim',
310
+ 'Desert',
311
+ 'Desert sand',
312
+ 'Desire',
313
+ 'Diamond',
314
+ 'Dim gray',
315
+ 'Dirt',
316
+ 'Dodger blue',
317
+ 'Dogwood rose',
318
+ 'Dollar bill',
319
+ 'Donkey brown',
320
+ 'Drab',
321
+ 'Duke blue',
322
+ 'Dust storm',
323
+ 'Dutch white',
324
324
 
325
- "Earth yellow",
326
- "Ebony",
327
- "Ecru",
328
- "Eerie black",
329
- "Eggplant",
330
- "Eggshell",
331
- "Egyptian blue",
332
- "Electric blue",
333
- "Electric crimson",
334
- "Electric cyan",
335
- "Electric green",
336
- "Electric indigo",
337
- "Electric lavender",
338
- "Electric lime",
339
- "Electric purple",
340
- "Electric ultramarine",
341
- "Electric violet",
342
- "Electric yellow",
343
- "Emerald",
344
- "Eminence",
345
- "English green",
346
- "English lavender",
347
- "English red",
348
- "English violet",
349
- "Eton blue",
350
- "Eucalyptus",
325
+ 'Earth yellow',
326
+ 'Ebony',
327
+ 'Ecru',
328
+ 'Eerie black',
329
+ 'Eggplant',
330
+ 'Eggshell',
331
+ 'Egyptian blue',
332
+ 'Electric blue',
333
+ 'Electric crimson',
334
+ 'Electric cyan',
335
+ 'Electric green',
336
+ 'Electric indigo',
337
+ 'Electric lavender',
338
+ 'Electric lime',
339
+ 'Electric purple',
340
+ 'Electric ultramarine',
341
+ 'Electric violet',
342
+ 'Electric yellow',
343
+ 'Emerald',
344
+ 'Eminence',
345
+ 'English green',
346
+ 'English lavender',
347
+ 'English red',
348
+ 'English violet',
349
+ 'Eton blue',
350
+ 'Eucalyptus',
351
351
 
352
+ 'Fallow',
353
+ 'Falu red',
354
+ 'Fandango',
355
+ 'Fandango pink',
356
+ 'Fashion fuchsia',
357
+ 'Fawn',
358
+ 'Feldgrau',
359
+ 'Feldspar',
360
+ 'Fern green',
361
+ 'Ferrari Red',
362
+ 'Field drab',
363
+ 'Firebrick',
364
+ 'Fire engine red',
365
+ 'Flame',
366
+ 'Flamingo pink',
367
+ 'Flattery',
368
+ 'Flavescent',
369
+ 'Flax',
370
+ 'Flirt',
371
+ 'Floral white',
372
+ 'Fluorescent orange',
373
+ 'Fluorescent pink',
374
+ 'Fluorescent yellow',
375
+ 'Folly',
376
+ 'Forest green',
377
+ 'French beige',
378
+ 'French bistre',
379
+ 'French blue',
380
+ 'French fuchsia',
381
+ 'French lilac',
382
+ 'French lime',
383
+ 'French mauve',
384
+ 'French pink',
385
+ 'French plum',
386
+ 'French puce',
387
+ 'French raspberry',
388
+ 'French rose',
389
+ 'French sky blue',
390
+ 'French violet',
391
+ 'French wine',
392
+ 'Fresh Air',
393
+ 'Fuchsia',
394
+ 'Fuchsia',
395
+ 'Fuchsia pink',
396
+ 'Fuchsia purple',
397
+ 'Fuchsia rose',
398
+ 'Fulvous',
399
+ 'Fuzzy Wuzzy',
352
400
 
353
- "Fallow",
354
- "Falu red",
355
- "Fandango",
356
- "Fandango pink",
357
- "Fashion fuchsia",
358
- "Fawn",
359
- "Feldgrau",
360
- "Feldspar",
361
- "Fern green",
362
- "Ferrari Red",
363
- "Field drab",
364
- "Firebrick",
365
- "Fire engine red",
366
- "Flame",
367
- "Flamingo pink",
368
- "Flattery",
369
- "Flavescent",
370
- "Flax",
371
- "Flirt",
372
- "Floral white",
373
- "Fluorescent orange",
374
- "Fluorescent pink",
375
- "Fluorescent yellow",
376
- "Folly",
377
- "Forest green",
378
- "French beige",
379
- "French bistre",
380
- "French blue",
381
- "French fuchsia",
382
- "French lilac",
383
- "French lime",
384
- "French mauve",
385
- "French pink",
386
- "French plum",
387
- "French puce",
388
- "French raspberry",
389
- "French rose",
390
- "French sky blue",
391
- "French violet",
392
- "French wine",
393
- "Fresh Air",
394
- "Fuchsia",
395
- "Fuchsia",
396
- "Fuchsia pink",
397
- "Fuchsia purple",
398
- "Fuchsia rose",
399
- "Fulvous",
400
- "Fuzzy Wuzzy",
401
-
402
- "Gainsboro",
403
- "Gamboge",
404
- "Generic viridian",
405
- "Ghost white",
406
- "Giants orange",
407
- "Ginger",
408
- "Glaucous",
409
- "Glitter",
410
- "GO green",
411
- "Gold",
412
- "Gold Fusion",
413
- "Golden brown",
414
- "Golden poppy",
415
- "Golden yellow",
416
- "Goldenrod",
417
- "Granny Smith Apple",
418
- "Grape",
419
- "Gray",
420
- "Gray-asparagus",
421
- "Gray-blue",
422
- "Green",
423
- "Green-yellow",
424
- "Grizzly",
425
- "Grullo",
426
- "Guppie green",
427
- "Halaya ube",
428
- "Han blue",
429
- "Han purple",
430
- "Hansa yellow",
431
- "Harlequin",
432
- "Harvard crimson",
433
- "Harvest gold",
434
- "Heart Gold",
435
- "Heliotrope",
436
- "Heliotrope gray",
437
- "Hollywood cerise",
438
- "Honeydew",
439
- "Honolulu blue",
401
+ 'Gainsboro',
402
+ 'Gamboge',
403
+ 'Generic viridian',
404
+ 'Ghost white',
405
+ 'Giants orange',
406
+ 'Ginger',
407
+ 'Glaucous',
408
+ 'Glitter',
409
+ 'GO green',
410
+ 'Gold',
411
+ 'Gold Fusion',
412
+ 'Golden brown',
413
+ 'Golden poppy',
414
+ 'Golden yellow',
415
+ 'Goldenrod',
416
+ 'Granny Smith Apple',
417
+ 'Grape',
418
+ 'Gray',
419
+ 'Gray-asparagus',
420
+ 'Gray-blue',
421
+ 'Green',
422
+ 'Green-yellow',
423
+ 'Grizzly',
424
+ 'Grullo',
425
+ 'Guppie green',
426
+ 'Halaya ube',
427
+ 'Han blue',
428
+ 'Han purple',
429
+ 'Hansa yellow',
430
+ 'Harlequin',
431
+ 'Harvard crimson',
432
+ 'Harvest gold',
433
+ 'Heart Gold',
434
+ 'Heliotrope',
435
+ 'Heliotrope gray',
436
+ 'Hollywood cerise',
437
+ 'Honeydew',
438
+ 'Honolulu blue',
440
439
  "Hooker's green",
441
- "Hot magenta",
442
- "Hot pink",
443
- "Hunter green",
444
-
445
-
446
- "Iceberg",
447
- "Icterine",
448
- "Illuminating Emerald",
449
- "Imperial",
450
- "Imperial blue",
451
- "Imperial purple",
452
- "Imperial red",
453
- "Inchworm",
454
- "Independence",
455
- "India green",
456
- "Indian red",
457
- "Indian yellow",
458
- "Indigo",
459
- "Indigo dye",
460
- "International Klein Blue",
461
- "International orange",
462
- "Iris",
463
- "Irresistible",
464
- "Isabelline",
465
- "Islamic green",
466
- "Italian sky blue",
467
- "Ivory",
468
- "Jade",
469
- "Japanese carmine",
470
- "Japanese indigo",
471
- "Japanese violet",
472
- "Jasmine",
473
- "Jasper",
474
- "Jazzberry jam",
475
- "Jelly Bean",
476
- "Jet",
477
- "Jonquil",
478
- "Jordy blue",
479
- "June bud",
480
- "Jungle green",
481
- "Kelly green",
482
- "Kenyan copper",
483
- "Keppel",
484
- "Khaki",
485
- "Kobe",
486
- "Kobi",
487
- "Kombu green",
488
- "KU Crimson",
489
-
490
-
491
- "La Salle Green",
492
- "Languid lavender",
493
- "Lapis lazuli",
494
- "Laser Lemon",
495
- "Laurel green",
496
- "Lava",
497
- "Lavender",
498
- "Lavender blue",
499
- "Lavender blush",
500
- "Lavender gray",
501
- "Lavender indigo",
502
- "Lavender magenta",
503
- "Lavender mist",
504
- "Lavender pink",
505
- "Lavender purple",
506
- "Lavender rose",
507
- "Lawn green",
508
- "Lemon",
509
- "Lemon chiffon",
510
- "Lemon curry",
511
- "Lemon glacier",
512
- "Lemon lime",
513
- "Lemon meringue",
514
- "Lemon yellow",
515
- "Licorice",
516
- "Liberty",
517
- "Light apricot",
518
- "Light blue",
519
- "Light brown",
520
- "Light carmine pink",
521
- "Light coral",
522
- "Light cornflower blue",
523
- "Light crimson",
524
- "Light cyan",
525
- "Light deep pink",
526
- "Light French beige",
527
- "Light fuchsia pink",
528
- "Light goldenrod yellow",
529
- "Light gray",
530
- "Light green",
531
- "Light hot pink",
532
- "Light khaki",
533
- "Light medium orchid",
534
- "Light moss green",
535
- "Light orchid",
536
- "Light pastel purple",
537
- "Light pink",
538
- "Light red ochre",
539
- "Light salmon",
540
- "Light salmon pink",
541
- "Light sea green",
542
- "Light sky blue",
543
- "Light slate gray",
544
- "Light steel blue",
545
- "Light taupe",
546
- "Light Thulian pink",
547
- "Light yellow",
548
- "Lilac",
549
- "Lime",
550
- "Lime green",
551
- "Limerick",
552
- "Lincoln green",
553
- "Linen",
554
- "Lion",
555
- "Liseran Purple",
556
- "Little boy blue",
557
- "Liver",
558
- "Liver",
559
- "Liver chestnut",
560
- "Livid",
561
- "Lumber",
562
- "Lust",
440
+ 'Hot magenta',
441
+ 'Hot pink',
442
+ 'Hunter green',
563
443
 
444
+ 'Iceberg',
445
+ 'Icterine',
446
+ 'Illuminating Emerald',
447
+ 'Imperial',
448
+ 'Imperial blue',
449
+ 'Imperial purple',
450
+ 'Imperial red',
451
+ 'Inchworm',
452
+ 'Independence',
453
+ 'India green',
454
+ 'Indian red',
455
+ 'Indian yellow',
456
+ 'Indigo',
457
+ 'Indigo dye',
458
+ 'International Klein Blue',
459
+ 'International orange',
460
+ 'Iris',
461
+ 'Irresistible',
462
+ 'Isabelline',
463
+ 'Islamic green',
464
+ 'Italian sky blue',
465
+ 'Ivory',
466
+ 'Jade',
467
+ 'Japanese carmine',
468
+ 'Japanese indigo',
469
+ 'Japanese violet',
470
+ 'Jasmine',
471
+ 'Jasper',
472
+ 'Jazzberry jam',
473
+ 'Jelly Bean',
474
+ 'Jet',
475
+ 'Jonquil',
476
+ 'Jordy blue',
477
+ 'June bud',
478
+ 'Jungle green',
479
+ 'Kelly green',
480
+ 'Kenyan copper',
481
+ 'Keppel',
482
+ 'Khaki',
483
+ 'Kobe',
484
+ 'Kobi',
485
+ 'Kombu green',
486
+ 'KU Crimson',
564
487
 
565
- "Magenta",
566
- "Magenta",
567
- "Magenta haze",
568
- "Magic mint",
569
- "Magnolia",
570
- "Mahogany",
571
- "Maize",
572
- "Majorelle Blue",
573
- "Malachite",
574
- "Manatee",
575
- "Mango Tango",
576
- "Mantis",
577
- "Mardi Gras",
578
- "Maroon",
579
- "Mauve",
580
- "Mauve taupe",
581
- "Mauvelous",
582
- "May green",
583
- "Maya blue",
584
- "Meat brown",
585
- "Medium aquamarine",
586
- "Medium blue",
587
- "Medium candy apple red",
588
- "Medium carmine",
589
- "Medium champagne",
590
- "Medium electric blue",
591
- "Medium jungle green",
592
- "Medium lavender magenta",
593
- "Medium orchid",
594
- "Medium Persian blue",
595
- "Medium purple",
596
- "Medium red-violet",
597
- "Medium ruby",
598
- "Medium sea green",
599
- "Medium sky blue",
600
- "Medium slate blue",
601
- "Medium spring bud",
602
- "Medium spring green",
603
- "Medium taupe",
604
- "Medium turquoise",
605
- "Medium Tuscan red",
606
- "Medium vermilion",
607
- "Medium violet-red",
608
- "Mellow apricot",
609
- "Mellow yellow",
610
- "Melon",
611
- "Metallic Seaweed",
612
- "Metallic Sunburst",
613
- "Mexican pink",
614
- "Midnight blue",
615
- "Milky blue",
616
- "Midnight green",
617
- "Mikado yellow",
618
- "Mindaro",
619
- "Mint",
620
- "Mint cream",
621
- "Mint green",
622
- "Misty rose",
623
- "Moccasin",
624
- "Mode beige",
625
- "Moonstone blue",
626
- "Mordant red 19",
627
- "Moss green",
628
- "Mountain Meadow",
629
- "Mountbatten pink",
630
- "MSU Green",
631
- "Mughal green",
632
- "Mulberry",
633
- "Mustard",
634
- "Myrtle green",
488
+ 'La Salle Green',
489
+ 'Languid lavender',
490
+ 'Lapis lazuli',
491
+ 'Laser Lemon',
492
+ 'Laurel green',
493
+ 'Lava',
494
+ 'Lavender',
495
+ 'Lavender blue',
496
+ 'Lavender blush',
497
+ 'Lavender gray',
498
+ 'Lavender indigo',
499
+ 'Lavender magenta',
500
+ 'Lavender mist',
501
+ 'Lavender pink',
502
+ 'Lavender purple',
503
+ 'Lavender rose',
504
+ 'Lawn green',
505
+ 'Lemon',
506
+ 'Lemon chiffon',
507
+ 'Lemon curry',
508
+ 'Lemon glacier',
509
+ 'Lemon lime',
510
+ 'Lemon meringue',
511
+ 'Lemon yellow',
512
+ 'Licorice',
513
+ 'Liberty',
514
+ 'Light apricot',
515
+ 'Light blue',
516
+ 'Light brown',
517
+ 'Light carmine pink',
518
+ 'Light coral',
519
+ 'Light cornflower blue',
520
+ 'Light crimson',
521
+ 'Light cyan',
522
+ 'Light deep pink',
523
+ 'Light French beige',
524
+ 'Light fuchsia pink',
525
+ 'Light goldenrod yellow',
526
+ 'Light gray',
527
+ 'Light green',
528
+ 'Light hot pink',
529
+ 'Light khaki',
530
+ 'Light medium orchid',
531
+ 'Light moss green',
532
+ 'Light orchid',
533
+ 'Light pastel purple',
534
+ 'Light pink',
535
+ 'Light red ochre',
536
+ 'Light salmon',
537
+ 'Light salmon pink',
538
+ 'Light sea green',
539
+ 'Light sky blue',
540
+ 'Light slate gray',
541
+ 'Light steel blue',
542
+ 'Light taupe',
543
+ 'Light Thulian pink',
544
+ 'Light yellow',
545
+ 'Lilac',
546
+ 'Lime',
547
+ 'Lime green',
548
+ 'Limerick',
549
+ 'Lincoln green',
550
+ 'Linen',
551
+ 'Lion',
552
+ 'Liseran Purple',
553
+ 'Little boy blue',
554
+ 'Liver',
555
+ 'Liver',
556
+ 'Liver chestnut',
557
+ 'Livid',
558
+ 'Lumber',
559
+ 'Lust',
635
560
 
636
- "Nadeshiko pink",
637
- "Napier green",
638
- "Naples yellow",
639
- "Navajo white",
640
- "Navy",
641
- "Navy purple",
642
- "Neon Carrot",
643
- "Neon fuchsia",
644
- "Neon green",
645
- "New Car",
646
- "New York pink",
647
- "Non-photo blue",
648
- "North Texas Green",
649
- "Nyanza",
650
- "Ocean Boat Blue",
651
- "Ochre",
652
- "Office green",
653
- "Old burgundy",
654
- "Old gold",
655
- "Old heliotrope",
656
- "Old lace",
657
- "Old lavender",
658
- "Old mauve",
659
- "Old moss green",
660
- "Old rose",
661
- "Old silver",
662
- "Olive",
663
- "Olive Drab",
664
- "Olivine",
665
- "Onyx",
666
- "Opera mauve",
667
- "Orange",
668
- "Orange peel",
669
- "Orange-red",
670
- "Orchid",
671
- "Orchid pink",
672
- "Orioles orange",
673
- "Otter brown",
674
- "Outer Space",
675
- "Outrageous Orange",
676
- "Oxford Blue",
677
- "OU Crimson Red",
561
+ 'Magenta',
562
+ 'Magenta',
563
+ 'Magenta haze',
564
+ 'Magic mint',
565
+ 'Magnolia',
566
+ 'Mahogany',
567
+ 'Maize',
568
+ 'Majorelle Blue',
569
+ 'Malachite',
570
+ 'Manatee',
571
+ 'Mango Tango',
572
+ 'Mantis',
573
+ 'Mardi Gras',
574
+ 'Maroon',
575
+ 'Mauve',
576
+ 'Mauve taupe',
577
+ 'Mauvelous',
578
+ 'May green',
579
+ 'Maya blue',
580
+ 'Meat brown',
581
+ 'Medium aquamarine',
582
+ 'Medium blue',
583
+ 'Medium candy apple red',
584
+ 'Medium carmine',
585
+ 'Medium champagne',
586
+ 'Medium electric blue',
587
+ 'Medium jungle green',
588
+ 'Medium lavender magenta',
589
+ 'Medium orchid',
590
+ 'Medium Persian blue',
591
+ 'Medium purple',
592
+ 'Medium red-violet',
593
+ 'Medium ruby',
594
+ 'Medium sea green',
595
+ 'Medium sky blue',
596
+ 'Medium slate blue',
597
+ 'Medium spring bud',
598
+ 'Medium spring green',
599
+ 'Medium taupe',
600
+ 'Medium turquoise',
601
+ 'Medium Tuscan red',
602
+ 'Medium vermilion',
603
+ 'Medium violet-red',
604
+ 'Mellow apricot',
605
+ 'Mellow yellow',
606
+ 'Melon',
607
+ 'Metallic Seaweed',
608
+ 'Metallic Sunburst',
609
+ 'Mexican pink',
610
+ 'Midnight blue',
611
+ 'Milky blue',
612
+ 'Midnight green',
613
+ 'Mikado yellow',
614
+ 'Mindaro',
615
+ 'Mint',
616
+ 'Mint cream',
617
+ 'Mint green',
618
+ 'Misty rose',
619
+ 'Moccasin',
620
+ 'Mode beige',
621
+ 'Moonstone blue',
622
+ 'Mordant red 19',
623
+ 'Moss green',
624
+ 'Mountain Meadow',
625
+ 'Mountbatten pink',
626
+ 'MSU Green',
627
+ 'Mughal green',
628
+ 'Mulberry',
629
+ 'Mustard',
630
+ 'Myrtle green',
678
631
 
632
+ 'Nadeshiko pink',
633
+ 'Napier green',
634
+ 'Naples yellow',
635
+ 'Navajo white',
636
+ 'Navy',
637
+ 'Navy purple',
638
+ 'Neon Carrot',
639
+ 'Neon fuchsia',
640
+ 'Neon green',
641
+ 'New Car',
642
+ 'New York pink',
643
+ 'Non-photo blue',
644
+ 'North Texas Green',
645
+ 'Nyanza',
646
+ 'Ocean Boat Blue',
647
+ 'Ochre',
648
+ 'Office green',
649
+ 'Old burgundy',
650
+ 'Old gold',
651
+ 'Old heliotrope',
652
+ 'Old lace',
653
+ 'Old lavender',
654
+ 'Old mauve',
655
+ 'Old moss green',
656
+ 'Old rose',
657
+ 'Old silver',
658
+ 'Olive',
659
+ 'Olive Drab',
660
+ 'Olivine',
661
+ 'Onyx',
662
+ 'Opera mauve',
663
+ 'Orange',
664
+ 'Orange peel',
665
+ 'Orange-red',
666
+ 'Orchid',
667
+ 'Orchid pink',
668
+ 'Orioles orange',
669
+ 'Otter brown',
670
+ 'Outer Space',
671
+ 'Outrageous Orange',
672
+ 'Oxford Blue',
673
+ 'OU Crimson Red',
679
674
 
680
- "Pakistan green",
681
- "Palatinate blue",
682
- "Palatinate purple",
683
- "Pale aqua",
684
- "Pale blue",
685
- "Pale brown",
686
- "Pale carmine",
687
- "Pale cerulean",
688
- "Pale chestnut",
689
- "Pale copper",
690
- "Pale cornflower blue",
691
- "Pale gold",
692
- "Pale goldenrod",
693
- "Pale green",
694
- "Pale lavender",
695
- "Pale magenta",
696
- "Pale pink",
697
- "Pale plum",
698
- "Pale red-violet",
699
- "Pale robin egg blue",
700
- "Pale silver",
701
- "Pale spring bud",
702
- "Pale taupe",
703
- "Pale turquoise",
704
- "Pale violet-red",
705
- "Pansy purple",
706
- "Paolo Veronese green",
707
- "Papaya whip",
708
- "Paradise pink",
709
- "Paris Green",
710
- "Pastel blue",
711
- "Pastel brown",
712
- "Pastel gray",
713
- "Pastel green",
714
- "Pastel magenta",
715
- "Pastel orange",
716
- "Pastel pink",
717
- "Pastel purple",
718
- "Pastel red",
719
- "Pastel violet",
720
- "Pastel yellow",
721
- "Patriarch",
675
+ 'Pakistan green',
676
+ 'Palatinate blue',
677
+ 'Palatinate purple',
678
+ 'Pale aqua',
679
+ 'Pale blue',
680
+ 'Pale brown',
681
+ 'Pale carmine',
682
+ 'Pale cerulean',
683
+ 'Pale chestnut',
684
+ 'Pale copper',
685
+ 'Pale cornflower blue',
686
+ 'Pale gold',
687
+ 'Pale goldenrod',
688
+ 'Pale green',
689
+ 'Pale lavender',
690
+ 'Pale magenta',
691
+ 'Pale pink',
692
+ 'Pale plum',
693
+ 'Pale red-violet',
694
+ 'Pale robin egg blue',
695
+ 'Pale silver',
696
+ 'Pale spring bud',
697
+ 'Pale taupe',
698
+ 'Pale turquoise',
699
+ 'Pale violet-red',
700
+ 'Pansy purple',
701
+ 'Paolo Veronese green',
702
+ 'Papaya whip',
703
+ 'Paradise pink',
704
+ 'Paris Green',
705
+ 'Pastel blue',
706
+ 'Pastel brown',
707
+ 'Pastel gray',
708
+ 'Pastel green',
709
+ 'Pastel magenta',
710
+ 'Pastel orange',
711
+ 'Pastel pink',
712
+ 'Pastel purple',
713
+ 'Pastel red',
714
+ 'Pastel violet',
715
+ 'Pastel yellow',
716
+ 'Patriarch',
722
717
  "Payne's grey",
723
- "Peach",
724
- "Peach",
725
- "Peach-orange",
726
- "Peach puff",
727
- "Peach-yellow",
728
- "Pear",
729
- "Pearl",
730
- "Pearl Aqua",
731
- "Pearly purple",
732
- "Peridot",
733
- "Periwinkle",
734
- "Persian blue",
735
- "Persian green",
736
- "Persian indigo",
737
- "Persian orange",
738
- "Persian pink",
739
- "Persian plum",
740
- "Persian red",
741
- "Persian rose",
742
- "Persimmon",
743
- "Peru",
744
- "Phlox",
745
- "Phthalo blue",
746
- "Phthalo green",
747
- "Picton blue",
748
- "Pictorial carmine",
749
- "Piggy pink",
750
- "Pine green",
751
- "Pineapple",
752
- "Pink",
753
- "Pink lace",
754
- "Pink lavender",
755
- "Pink-orange",
756
- "Pink pearl",
757
- "Pink Sherbet",
758
- "Pistachio",
759
- "Platinum",
760
- "Plum",
761
- "Pomp and Power",
762
- "Popstar",
763
- "Portland Orange",
764
- "Powder blue",
765
- "Princeton orange",
766
- "Prune",
767
- "Prussian blue",
768
- "Psychedelic purple",
769
- "Puce",
770
- "Puce red",
771
- "Pullman Brown",
772
- "Pumpkin",
773
- "Purple",
774
- "Purple Heart",
775
- "Purple mountain majesty",
776
- "Purple navy",
777
- "Purple pizzazz",
778
- "Purple taupe",
779
- "Purpureus",
718
+ 'Peach',
719
+ 'Peach',
720
+ 'Peach-orange',
721
+ 'Peach puff',
722
+ 'Peach-yellow',
723
+ 'Pear',
724
+ 'Pearl',
725
+ 'Pearl Aqua',
726
+ 'Pearly purple',
727
+ 'Peridot',
728
+ 'Periwinkle',
729
+ 'Persian blue',
730
+ 'Persian green',
731
+ 'Persian indigo',
732
+ 'Persian orange',
733
+ 'Persian pink',
734
+ 'Persian plum',
735
+ 'Persian red',
736
+ 'Persian rose',
737
+ 'Persimmon',
738
+ 'Peru',
739
+ 'Phlox',
740
+ 'Phthalo blue',
741
+ 'Phthalo green',
742
+ 'Picton blue',
743
+ 'Pictorial carmine',
744
+ 'Piggy pink',
745
+ 'Pine green',
746
+ 'Pineapple',
747
+ 'Pink',
748
+ 'Pink lace',
749
+ 'Pink lavender',
750
+ 'Pink-orange',
751
+ 'Pink pearl',
752
+ 'Pink Sherbet',
753
+ 'Pistachio',
754
+ 'Platinum',
755
+ 'Plum',
756
+ 'Pomp and Power',
757
+ 'Popstar',
758
+ 'Portland Orange',
759
+ 'Powder blue',
760
+ 'Princeton orange',
761
+ 'Prune',
762
+ 'Prussian blue',
763
+ 'Psychedelic purple',
764
+ 'Puce',
765
+ 'Puce red',
766
+ 'Pullman Brown',
767
+ 'Pumpkin',
768
+ 'Purple',
769
+ 'Purple Heart',
770
+ 'Purple mountain majesty',
771
+ 'Purple navy',
772
+ 'Purple pizzazz',
773
+ 'Purple taupe',
774
+ 'Purpureus',
780
775
 
776
+ 'Quartz',
777
+ 'Queen blue',
778
+ 'Queen pink',
779
+ 'Quinacridone magenta',
780
+ 'Rackley',
781
+ 'Radical Red',
782
+ 'Rajah',
783
+ 'Raspberry',
784
+ 'Raspberry glace',
785
+ 'Raspberry pink',
786
+ 'Raspberry rose',
787
+ 'Raw umber',
788
+ 'Razzle dazzle rose',
789
+ 'Razzmatazz',
790
+ 'Razzmic Berry',
791
+ 'Rebecca Purple',
792
+ 'Red',
793
+ 'Red',
794
+ 'Red-brown',
795
+ 'Red devil',
796
+ 'Red-orange',
797
+ 'Red-purple',
798
+ 'Red-violet',
799
+ 'Redwood',
800
+ 'Regalia',
801
+ 'Resolution blue',
802
+ 'Rhythm',
803
+ 'Rich black',
804
+ 'Rich brilliant lavender',
805
+ 'Rich carmine',
806
+ 'Rich electric blue',
807
+ 'Rich lavender',
808
+ 'Rich lilac',
809
+ 'Rich maroon',
810
+ 'Rifle green',
811
+ 'Roast coffee',
812
+ 'Robin egg blue',
813
+ 'Rocket metallic',
814
+ 'Roman silver',
815
+ 'Rose',
816
+ 'Rose bonbon',
817
+ 'Rose ebony',
818
+ 'Rose gold',
819
+ 'Rose madder',
820
+ 'Rose pink',
821
+ 'Rose quartz',
822
+ 'Rose red',
823
+ 'Rose taupe',
824
+ 'Rose vale',
825
+ 'Rosewood',
826
+ 'Rosso corsa',
827
+ 'Rosy brown',
828
+ 'Royal azure',
829
+ 'Royal blue',
830
+ 'Royal blue',
831
+ 'Royal fuchsia',
832
+ 'Royal purple',
833
+ 'Royal yellow',
834
+ 'Ruber',
835
+ 'Rubine red',
836
+ 'Ruby',
837
+ 'Ruby red',
838
+ 'Ruddy',
839
+ 'Ruddy brown',
840
+ 'Ruddy pink',
841
+ 'Rufous',
842
+ 'Russet',
843
+ 'Russian green',
844
+ 'Russian violet',
845
+ 'Rust',
846
+ 'Rusty red',
781
847
 
782
- "Quartz",
783
- "Queen blue",
784
- "Queen pink",
785
- "Quinacridone magenta",
786
- "Rackley",
787
- "Radical Red",
788
- "Rajah",
789
- "Raspberry",
790
- "Raspberry glace",
791
- "Raspberry pink",
792
- "Raspberry rose",
793
- "Raw umber",
794
- "Razzle dazzle rose",
795
- "Razzmatazz",
796
- "Razzmic Berry",
797
- "Rebecca Purple",
798
- "Red",
799
- "Red",
800
- "Red-brown",
801
- "Red devil",
802
- "Red-orange",
803
- "Red-purple",
804
- "Red-violet",
805
- "Redwood",
806
- "Regalia",
807
- "Resolution blue",
808
- "Rhythm",
809
- "Rich black",
810
- "Rich brilliant lavender",
811
- "Rich carmine",
812
- "Rich electric blue",
813
- "Rich lavender",
814
- "Rich lilac",
815
- "Rich maroon",
816
- "Rifle green",
817
- "Roast coffee",
818
- "Robin egg blue",
819
- "Rocket metallic",
820
- "Roman silver",
821
- "Rose",
822
- "Rose bonbon",
823
- "Rose ebony",
824
- "Rose gold",
825
- "Rose madder",
826
- "Rose pink",
827
- "Rose quartz",
828
- "Rose red",
829
- "Rose taupe",
830
- "Rose vale",
831
- "Rosewood",
832
- "Rosso corsa",
833
- "Rosy brown",
834
- "Royal azure",
835
- "Royal blue",
836
- "Royal blue",
837
- "Royal fuchsia",
838
- "Royal purple",
839
- "Royal yellow",
840
- "Ruber",
841
- "Rubine red",
842
- "Ruby",
843
- "Ruby red",
844
- "Ruddy",
845
- "Ruddy brown",
846
- "Ruddy pink",
847
- "Rufous",
848
- "Russet",
849
- "Russian green",
850
- "Russian violet",
851
- "Rust",
852
- "Rusty red",
853
-
854
-
855
- "Sacramento State green",
856
- "Saddle brown",
857
- "Safety orange",
858
- "Safety yellow",
859
- "Saffron",
860
- "Sage",
848
+ 'Sacramento State green',
849
+ 'Saddle brown',
850
+ 'Safety orange',
851
+ 'Safety yellow',
852
+ 'Saffron',
853
+ 'Sage',
861
854
  "St. Patrick's blue",
862
- "Salmon",
863
- "Salmon pink",
864
- "Sand",
865
- "Sand dune",
866
- "Sandstorm",
867
- "Sandy brown",
868
- "Sandy taupe",
869
- "Sangria",
870
- "Sap green",
871
- "Sapphire",
872
- "Sapphire blue",
873
- "Satin sheen gold",
874
- "Scarlet",
875
- "Scarlet",
876
- "Schauss pink",
877
- "School bus yellow",
855
+ 'Salmon',
856
+ 'Salmon pink',
857
+ 'Sand',
858
+ 'Sand dune',
859
+ 'Sandstorm',
860
+ 'Sandy brown',
861
+ 'Sandy taupe',
862
+ 'Sangria',
863
+ 'Sap green',
864
+ 'Sapphire',
865
+ 'Sapphire blue',
866
+ 'Satin sheen gold',
867
+ 'Scarlet',
868
+ 'Scarlet',
869
+ 'Schauss pink',
870
+ 'School bus yellow',
878
871
  "Screamin' Green",
879
- "Sea blue",
880
- "Sea green",
881
- "Seal brown",
882
- "Seashell",
883
- "Selective yellow",
884
- "Sepia",
885
- "Shadow",
886
- "Shadow blue",
887
- "Shampoo",
888
- "Shamrock green",
889
- "Sheen Green",
890
- "Shimmering Blush",
891
- "Shocking pink",
892
- "Sienna",
893
- "Silver",
894
- "Silver chalice",
895
- "Silver Lake blue",
896
- "Silver pink",
897
- "Silver sand",
898
- "Sinopia",
899
- "Skobeloff",
900
- "Sky blue",
901
- "Sky magenta",
902
- "Slate blue",
903
- "Slate gray",
904
- "Smalt",
905
- "Smitten",
906
- "Smoke",
907
- "Smoky black",
908
- "Smoky Topaz",
909
- "Snow",
910
- "Soap",
911
- "Solid pink",
912
- "Sonic silver",
913
- "Spartan Crimson",
914
- "Space cadet",
915
- "Spanish bistre",
916
- "Spanish blue",
917
- "Spanish carmine",
918
- "Spanish crimson",
919
- "Spanish gray",
920
- "Spanish green",
921
- "Spanish orange",
922
- "Spanish pink",
923
- "Spanish red",
924
- "Spanish sky blue",
925
- "Spanish violet",
926
- "Spanish viridian",
927
- "Spiro Disco Ball",
928
- "Spring bud",
929
- "Spring green",
930
- "Star command blue",
931
- "Steel blue",
932
- "Steel pink",
933
- "Stil de grain yellow",
934
- "Stizza",
935
- "Stormcloud",
936
- "Straw",
937
- "Strawberry",
938
- "Sunglow",
939
- "Sunray",
940
- "Sunset",
941
- "Sunset orange",
942
- "Super pink",
872
+ 'Sea blue',
873
+ 'Sea green',
874
+ 'Seal brown',
875
+ 'Seashell',
876
+ 'Selective yellow',
877
+ 'Sepia',
878
+ 'Shadow',
879
+ 'Shadow blue',
880
+ 'Shampoo',
881
+ 'Shamrock green',
882
+ 'Sheen Green',
883
+ 'Shimmering Blush',
884
+ 'Shocking pink',
885
+ 'Sienna',
886
+ 'Silver',
887
+ 'Silver chalice',
888
+ 'Silver Lake blue',
889
+ 'Silver pink',
890
+ 'Silver sand',
891
+ 'Sinopia',
892
+ 'Skobeloff',
893
+ 'Sky blue',
894
+ 'Sky magenta',
895
+ 'Slate blue',
896
+ 'Slate gray',
897
+ 'Smalt',
898
+ 'Smitten',
899
+ 'Smoke',
900
+ 'Smoky black',
901
+ 'Smoky Topaz',
902
+ 'Snow',
903
+ 'Soap',
904
+ 'Solid pink',
905
+ 'Sonic silver',
906
+ 'Spartan Crimson',
907
+ 'Space cadet',
908
+ 'Spanish bistre',
909
+ 'Spanish blue',
910
+ 'Spanish carmine',
911
+ 'Spanish crimson',
912
+ 'Spanish gray',
913
+ 'Spanish green',
914
+ 'Spanish orange',
915
+ 'Spanish pink',
916
+ 'Spanish red',
917
+ 'Spanish sky blue',
918
+ 'Spanish violet',
919
+ 'Spanish viridian',
920
+ 'Spiro Disco Ball',
921
+ 'Spring bud',
922
+ 'Spring green',
923
+ 'Star command blue',
924
+ 'Steel blue',
925
+ 'Steel pink',
926
+ 'Stil de grain yellow',
927
+ 'Stizza',
928
+ 'Stormcloud',
929
+ 'Straw',
930
+ 'Strawberry',
931
+ 'Sunglow',
932
+ 'Sunray',
933
+ 'Sunset',
934
+ 'Sunset orange',
935
+ 'Super pink',
943
936
 
944
-
945
- "Tan",
946
- "Tangelo",
947
- "Tangerine",
948
- "Tangerine yellow",
949
- "Tango pink",
950
- "Taupe",
951
- "Taupe gray",
952
- "Tea green",
953
- "Tea rose",
954
- "Tea rose",
955
- "Teal",
956
- "Teal blue",
957
- "Teal deer",
958
- "Teal green",
959
- "Telemagenta",
960
- "Tenne",
961
- "Terra cotta",
962
- "Thistle",
963
- "Thulian pink",
964
- "Tickle Me Pink",
965
- "Tiffany Blue",
937
+ 'Tan',
938
+ 'Tangelo',
939
+ 'Tangerine',
940
+ 'Tangerine yellow',
941
+ 'Tango pink',
942
+ 'Taupe',
943
+ 'Taupe gray',
944
+ 'Tea green',
945
+ 'Tea rose',
946
+ 'Tea rose',
947
+ 'Teal',
948
+ 'Teal blue',
949
+ 'Teal deer',
950
+ 'Teal green',
951
+ 'Telemagenta',
952
+ 'Tenne',
953
+ 'Terra cotta',
954
+ 'Thistle',
955
+ 'Thulian pink',
956
+ 'Tickle Me Pink',
957
+ 'Tiffany Blue',
966
958
  "Tiger's eye",
967
- "Timberwolf",
968
- "Titanium yellow",
969
- "Tomato",
970
- "Toolbox",
971
- "Topaz",
972
- "Tractor red",
973
- "Trolley Grey",
974
- "Tropical rain forest",
975
- "True Blue",
976
- "Tufts Blue",
977
- "Tulip",
978
- "Tumbleweed",
979
- "Turkish rose",
980
- "Turquoise",
981
- "Turquoise blue",
982
- "Turquoise green",
983
- "Tuscan",
984
- "Tuscan brown",
985
- "Tuscan red",
986
- "Tuscan tan",
987
- "Tuscany",
988
- "Twilight lavender",
989
- "Tyrian purple",
990
-
959
+ 'Timberwolf',
960
+ 'Titanium yellow',
961
+ 'Tomato',
962
+ 'Toolbox',
963
+ 'Topaz',
964
+ 'Tractor red',
965
+ 'Trolley Grey',
966
+ 'Tropical rain forest',
967
+ 'True Blue',
968
+ 'Tufts Blue',
969
+ 'Tulip',
970
+ 'Tumbleweed',
971
+ 'Turkish rose',
972
+ 'Turquoise',
973
+ 'Turquoise blue',
974
+ 'Turquoise green',
975
+ 'Tuscan',
976
+ 'Tuscan brown',
977
+ 'Tuscan red',
978
+ 'Tuscan tan',
979
+ 'Tuscany',
980
+ 'Twilight lavender',
981
+ 'Tyrian purple',
991
982
 
992
- "UA blue",
993
- "UA red",
994
- "Ube",
995
- "UCLA Blue",
996
- "UCLA Gold",
997
- "UFO Green",
998
- "Ultramarine",
999
- "Ultramarine blue",
1000
- "Ultra pink",
1001
- "Ultra red",
1002
- "Umber",
1003
- "Unbleached silk",
1004
- "United Nations blue",
1005
- "University of California Gold",
1006
- "Unmellow yellow",
1007
- "UP Forest green",
1008
- "UP Maroon",
1009
- "Upsdell red",
1010
- "Urobilin",
1011
- "USAFA blue",
1012
- "USC Cardinal",
1013
- "USC Gold",
1014
- "University of Tennessee Orange",
1015
- "Utah Crimson",
1016
- "Vanilla",
1017
- "Vanilla ice",
1018
- "Vegas gold",
1019
- "Venetian red",
1020
- "Verdigris",
1021
- "Vermilion",
1022
- "Vermilion",
1023
- "Veronica",
1024
- "Violet",
1025
- "Violet-blue",
1026
- "Violet-red",
1027
- "Viridian",
1028
- "Viridian green",
1029
- "Vista blue",
1030
- "Vivid auburn",
1031
- "Vivid burgundy",
1032
- "Vivid cerise",
1033
- "Vivid orchid",
1034
- "Vivid sky blue",
1035
- "Vivid tangerine",
1036
- "Vivid violet",
983
+ 'UA blue',
984
+ 'UA red',
985
+ 'Ube',
986
+ 'UCLA Blue',
987
+ 'UCLA Gold',
988
+ 'UFO Green',
989
+ 'Ultramarine',
990
+ 'Ultramarine blue',
991
+ 'Ultra pink',
992
+ 'Ultra red',
993
+ 'Umber',
994
+ 'Unbleached silk',
995
+ 'United Nations blue',
996
+ 'University of California Gold',
997
+ 'Unmellow yellow',
998
+ 'UP Forest green',
999
+ 'UP Maroon',
1000
+ 'Upsdell red',
1001
+ 'Urobilin',
1002
+ 'USAFA blue',
1003
+ 'USC Cardinal',
1004
+ 'USC Gold',
1005
+ 'University of Tennessee Orange',
1006
+ 'Utah Crimson',
1007
+ 'Vanilla',
1008
+ 'Vanilla ice',
1009
+ 'Vegas gold',
1010
+ 'Venetian red',
1011
+ 'Verdigris',
1012
+ 'Vermilion',
1013
+ 'Vermilion',
1014
+ 'Veronica',
1015
+ 'Violet',
1016
+ 'Violet-blue',
1017
+ 'Violet-red',
1018
+ 'Viridian',
1019
+ 'Viridian green',
1020
+ 'Vista blue',
1021
+ 'Vivid auburn',
1022
+ 'Vivid burgundy',
1023
+ 'Vivid cerise',
1024
+ 'Vivid orchid',
1025
+ 'Vivid sky blue',
1026
+ 'Vivid tangerine',
1027
+ 'Vivid violet',
1037
1028
 
1038
- "Warm black",
1039
- "Waterspout",
1040
- "Wenge",
1041
- "Wheat",
1042
- "White",
1043
- "White smoke",
1044
- "Wild blue yonder",
1045
- "Wild orchid",
1046
- "Wild Strawberry",
1047
- "Wild watermelon",
1048
- "Willpower orange",
1049
- "Windsor tan",
1050
- "Wine",
1051
- "Wine dregs",
1052
- "Wisteria",
1053
- "Wood brown",
1054
- "Xanadu",
1055
- "Yale Blue",
1056
- "Yankees blue",
1057
- "Yellow",
1058
- "Yellow-green",
1059
- "Yellow Orange",
1060
- "Yellow rose",
1061
- "Zaffre",
1062
- "Zinnwaldite brown",
1063
- "Zomp"
1064
- ]
1029
+ 'Warm black',
1030
+ 'Waterspout',
1031
+ 'Wenge',
1032
+ 'Wheat',
1033
+ 'White',
1034
+ 'White smoke',
1035
+ 'Wild blue yonder',
1036
+ 'Wild orchid',
1037
+ 'Wild Strawberry',
1038
+ 'Wild watermelon',
1039
+ 'Willpower orange',
1040
+ 'Windsor tan',
1041
+ 'Wine',
1042
+ 'Wine dregs',
1043
+ 'Wisteria',
1044
+ 'Wood brown',
1045
+ 'Xanadu',
1046
+ 'Yale Blue',
1047
+ 'Yankees blue',
1048
+ 'Yellow',
1049
+ 'Yellow-green',
1050
+ 'Yellow Orange',
1051
+ 'Yellow rose',
1052
+ 'Zaffre',
1053
+ 'Zinnwaldite brown',
1054
+ 'Zomp'
1055
+ ].freeze
1065
1056
 
1066
1057
  COLOR_SEARCH = FuzzBall::Searcher.new(COLOR_NAMES)
1067
1058
  end