class R10K::Environment::Name

Handle environment name validation and modification.

@api private

Constants

INVALID_CHARACTERS

Attributes

name[R]

@!attribute [r] name

@return [String] The unmodified name of the environment

Public Class Methods

new(name, opts) click to toggle source
# File lib/r10k/environment/name.rb, line 14
def initialize(name, opts)
  @name   = name
  @opts   = opts

  @source  = opts[:source]
  @prefix  = opts[:prefix]
  @invalid = opts[:invalid]

  case @invalid
  when 'correct_and_warn'
    @validate = true
    @correct  = true
  when 'correct'
    @validate = false
    @correct  = true
  when 'error'
    @validate = true
    @correct  = false
  when NilClass
    @validate = opts[:validate]
    @correct = opts[:correct]
  end
end

Public Instance Methods

correct?() click to toggle source

Should the environment name have invalid characters removed?

# File lib/r10k/environment/name.rb, line 39
def correct?
  @correct
end
dirname() click to toggle source

The directory name for the environment, modified as necessary to remove invalid characters.

@return [String]

# File lib/r10k/environment/name.rb, line 59
def dirname
  dir = @name.dup

  prefix = derive_prefix(@source,@prefix)

  if @correct
    dir.gsub!(INVALID_CHARACTERS, '_')
  end

  "#{prefix}#{dir}"
end
valid?() click to toggle source
# File lib/r10k/environment/name.rb, line 47
def valid?
  if @validate
    ! @name.match(INVALID_CHARACTERS)
  else
    true
  end
end
validate?() click to toggle source
# File lib/r10k/environment/name.rb, line 43
def validate?
  @validate
end

Private Instance Methods

derive_prefix(source,prefix) click to toggle source
# File lib/r10k/environment/name.rb, line 74
def derive_prefix(source,prefix)

  if prefix == true
    "#{source}_"
  elsif prefix.is_a? String
    "#{prefix}_"
  else
    nil
  end
end