diff options
author | Robert Speicher <rspeicher@gmail.com> | 2015-08-25 14:31:33 -0700 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-08-25 15:32:38 -0700 |
commit | 4344b8d2d4367b19c6849c3cab0d02d17ddf2304 (patch) | |
tree | acdd4182f3fecac6c22fb1cfb783cb987ad87001 /lib | |
parent | 429c0d14918d8727eac0e24ff01df5cdf55b2f79 (diff) | |
download | gitlab-ce-4344b8d2d4367b19c6849c3cab0d02d17ddf2304.tar.gz |
Add Gitlab::ColorSchemes module
Very similar to Gitlab::Theme, this contains all of the definitions for
our syntax highlighting schemes.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/color_schemes.rb | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/gitlab/color_schemes.rb b/lib/gitlab/color_schemes.rb new file mode 100644 index 00000000000..763853ab1cb --- /dev/null +++ b/lib/gitlab/color_schemes.rb @@ -0,0 +1,62 @@ +module Gitlab + # Module containing GitLab's syntax color scheme definitions and helper + # methods for accessing them. + module ColorSchemes + # Struct class representing a single Scheme + Scheme = Struct.new(:id, :name, :css_class) + + SCHEMES = [ + Scheme.new(1, 'White', 'white'), + Scheme.new(2, 'Dark', 'dark'), + Scheme.new(3, 'Solarized Light', 'solarized-light'), + Scheme.new(4, 'Solarized Dark', 'solarized-dark'), + Scheme.new(5, 'Monokai', 'monokai') + ].freeze + + # Convenience method to get a space-separated String of all the color scheme + # classes that might be applied to a code block. + # + # Returns a String + def self.body_classes + SCHEMES.collect(&:css_class).uniq.join(' ') + end + + # Get a Scheme by its ID + # + # If the ID is invalid, returns the default Scheme. + # + # id - Integer ID + # + # Returns a Scheme + def self.by_id(id) + SCHEMES.detect { |s| s.id == id } || default + end + + # Get the default Scheme + # + # Returns a Scheme + def self.default + by_id(1) + end + + # Iterate through each Scheme + # + # Yields the Scheme object + def self.each(&block) + SCHEMES.each(&block) + end + + # Get the Scheme for the specified user, or the default + # + # user - User record + # + # Returns a Scheme + def self.for_user(user) + if user + by_id(user.color_scheme_id) + else + default + end + end + end +end |