Module: Gitlab::ColorModes
- Defined in:
- lib/gitlab/color_modes.rb
Overview
Module containing GitLab’s color mode definitions and helper methods for accessing them.
Defined Under Namespace
Classes: Mode
Constant Summary collapse
- APPLICATION_DEFAULT =
Color mode ID used when no ‘default_color_mode` configuration setting is provided.
3- APPLICATION_LIGHT =
1- APPLICATION_DARK =
2- APPLICATION_SYSTEM =
3
Class Method Summary collapse
- .available_modes ⇒ Object
-
.by_id(id) ⇒ Object
Get a Mode by its ID.
-
.default ⇒ Object
Get the default Mode.
- .default_id ⇒ Object
-
.each(&block) ⇒ Object
Iterate through each Mode.
-
.for_user(user) ⇒ Object
Get the Mode for the specified user, or the default.
- .valid_ids ⇒ Object
Class Method Details
.available_modes ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/gitlab/color_modes.rb', line 16 def self.available_modes [ Mode.new(APPLICATION_LIGHT, s_('ColorMode|Light'), 'gl-light'), Mode.new(APPLICATION_DARK, s_('ColorMode|Dark'), 'gl-dark'), Mode.new(APPLICATION_SYSTEM, s_('ColorMode|Auto'), 'gl-system') ] end |
.by_id(id) ⇒ Object
Get a Mode by its ID
If the ID is invalid, returns the default Mode.
id - Integer ID
Returns a Mode
31 32 33 |
# File 'lib/gitlab/color_modes.rb', line 31 def self.by_id(id) available_modes.detect { |s| s.id == id } || default end |
.default ⇒ Object
Get the default Mode
Returns a Mode
38 39 40 |
# File 'lib/gitlab/color_modes.rb', line 38 def self.default by_id(default_id) end |
.default_id ⇒ Object
66 67 68 69 70 71 |
# File 'lib/gitlab/color_modes.rb', line 66 def self.default_id @default_id ||= begin id = Gitlab.config.gitlab['default_color_mode']&.to_i available_modes.detect { |s| s.id == id }&.id || APPLICATION_DEFAULT end end |
.each(&block) ⇒ Object
Iterate through each Mode
Yields the Mode object
45 46 47 |
# File 'lib/gitlab/color_modes.rb', line 45 def self.each(&block) available_modes.each(&block) end |
.for_user(user) ⇒ Object
Get the Mode for the specified user, or the default
user - User record
Returns a Mode
54 55 56 57 58 59 60 |
# File 'lib/gitlab/color_modes.rb', line 54 def self.for_user(user) if user by_id(user.color_mode_id) else default end end |
.valid_ids ⇒ Object
62 63 64 |
# File 'lib/gitlab/color_modes.rb', line 62 def self.valid_ids available_modes.map(&:id) end |