class SlackProgressBar::Config
Constants
- CIRCLE_SUFFIX
- DEFAULT_ALIASES
- DEFAULT_LETTERS
The default letters stand for: purple, blue, green, yellow, orange, red, and white. See SlackProgressBar::Generator::DEFAULT_COLORS for more information.
- DEFAULT_PREFIX
- InvalidConfigError
- LEFT_CAP_SUFFIX
- LETTER_PATTERN
- PREFIX_PATTERN
- RIGHT_CAP_SUFFIX
- SEPARATOR
Attributes
aliases[RW]
letters[RW]
prefix[RW]
Public Class Methods
new()
click to toggle source
# File lib/slack_progress_bar/config.rb, line 34 def initialize @prefix = DEFAULT_PREFIX @letters = DEFAULT_LETTERS @aliases = DEFAULT_ALIASES end
Public Instance Methods
circle_suffix()
click to toggle source
# File lib/slack_progress_bar/config.rb, line 117 def circle_suffix CIRCLE_SUFFIX end
default_letter()
click to toggle source
# File lib/slack_progress_bar/config.rb, line 101 def default_letter letters.last end
left_cap_suffix()
click to toggle source
# File lib/slack_progress_bar/config.rb, line 109 def left_cap_suffix LEFT_CAP_SUFFIX end
right_cap_suffix()
click to toggle source
# File lib/slack_progress_bar/config.rb, line 113 def right_cap_suffix RIGHT_CAP_SUFFIX end
separator()
click to toggle source
# File lib/slack_progress_bar/config.rb, line 105 def separator SEPARATOR end
valid?()
click to toggle source
# File lib/slack_progress_bar/config.rb, line 93 def valid? validate! rescue InvalidConfigError false else true end
validate!()
click to toggle source
# File lib/slack_progress_bar/config.rb, line 40 def validate! unless prefix.is_a?(String) raise InvalidConfigError, "The prefix must be a String. Found #{prefix.class.name}: #{prefix.inspect}" end unless PREFIX_PATTERN.match?(prefix) raise InvalidConfigError, "The prefix must only contain digits 0-9 and/or lowercase letters a-z. Found: #{prefix.inspect}" end unless letters.is_a?(Array) raise InvalidConfigError, "Configured letters must be an Array. Found #{letters.class.name}: #{letters.inspect}" end case letters.size when 0 raise InvalidConfigError, "Provide at least two letters." when 1 raise InvalidConfigError, "Provide at least two letters. The last letter will be used as the default." end unless letters.uniq.size == letters.size raise InvalidConfigError, "Configured letters must be unique." end letters.each do |letter| unless letter.is_a?(String) raise InvalidConfigError, "Every letter must be a String. Found #{letter.class.name}: #{letter.inspect}" end unless LETTER_PATTERN.match?(letter) raise InvalidConfigError, "The only valid letters are lowercase a-z. Found: #{letter.inspect}" end end unless aliases.is_a?(Hash) raise InvalidConfigError, "Configured aliases must be a Hash. Found #{aliases.class.name}: #{aliases.inspect}" end aliases.each do |name, letter| unless name.is_a?(Symbol) raise InvalidConfigError, "Every alias must have a Symbol name. Found #{name.class.name}: #{name.inspect}" end unless letter.is_a?(String) raise InvalidConfigError, "Every alias must point to a String letter. Found #{letter.class.name}: #{letter.inspect}" end unless letters.include?(letter) raise InvalidConfigError, "Every alias must point to a valid letter. Found: #{letter.inspect}" end end end