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.
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
15 16 17 18 19 20 21 |
# File 'lib/gitlab/color_modes.rb', line 15 def self.available_modes [ Mode.new(APPLICATION_DEFAULT, s_('ColorMode|Light'), 'gl-light'), Mode.new(APPLICATION_DARK, s_('ColorMode|Dark (Experiment)'), 'gl-dark'), Mode.new(APPLICATION_SYSTEM, s_('ColorMode|Auto (Experiment)'), '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
30 31 32 |
# File 'lib/gitlab/color_modes.rb', line 30 def self.by_id(id) available_modes.detect { |s| s.id == id } || default end |
.default ⇒ Object
Get the default Mode
Returns a Mode
37 38 39 |
# File 'lib/gitlab/color_modes.rb', line 37 def self.default by_id(default_id) end |
.default_id ⇒ Object
65 66 67 68 69 70 |
# File 'lib/gitlab/color_modes.rb', line 65 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
44 45 46 |
# File 'lib/gitlab/color_modes.rb', line 44 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
53 54 55 56 57 58 59 |
# File 'lib/gitlab/color_modes.rb', line 53 def self.for_user(user) if user by_id(user.color_mode_id) else default end end |
.valid_ids ⇒ Object
61 62 63 |
# File 'lib/gitlab/color_modes.rb', line 61 def self.valid_ids available_modes.map(&:id) end |