Class: Gitlab::Slug::Environment
- Inherits:
-
Object
- Object
- Gitlab::Slug::Environment
- Defined in:
- lib/gitlab/slug/environment.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(name) ⇒ Environment
constructor
A new instance of Environment.
Constructor Details
#initialize(name) ⇒ Environment
Returns a new instance of Environment.
15 16 17 |
# File 'lib/gitlab/slug/environment.rb', line 15 def initialize(name) @name = name end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
13 14 15 |
# File 'lib/gitlab/slug/environment.rb', line 13 def name @name end |
Instance Method Details
#generate ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/gitlab/slug/environment.rb', line 19 def generate # Lowercase letters and numbers only slugified = name.to_s.downcase.gsub(/[^a-z0-9]/, '-') # Must start with a letter slugified = +"env-#{slugified}" unless slugified.match?(/^[a-z]/) # Repeated dashes are invalid (OpenShift limitation) slugified.squeeze!('-') if slugified.size > 24 || slugified != name # Maximum length: 24 characters (OpenShift limitation) shorten_and_add_suffix(slugified) else # Cannot end with a dash (Kubernetes label limitation) slugified.chomp('-') end end |