class Case::Config

This class manage configuration for only one case

Attributes

global[R]
ialias[R]
local[R]
running[R]

Public Class Methods

new(args) click to toggle source
# File lib/teuton/case_manager/case/config.rb, line 15
def initialize(args)
  @ialias  = args[:alias] || Application.instance.ialias.clone
  @global  = args[:global] || Application.instance.global.clone
  @local   = args[:local]  || {}
  @running = {}

  # Set defaults values
  @local[:tt_skip] = @local[:tt_skip] || false
end

Public Instance Methods

get(option, level = 0) click to toggle source

Read param Option from [running, config or global] Hash data

# File lib/teuton/case_manager/case/config.rb, line 26
def get(option, level = 0)
  return 'NODATA' if level > 3

  return @running[option] if @running[option]

  return @local[option] if @local[option]

  return @global[option] if @global[option]

  search_alias option, level + 1
end
set(key, value) click to toggle source
# File lib/teuton/case_manager/case/config.rb, line 38
def set(key, value)
  @running[key] = value
end
unset(key) click to toggle source
# File lib/teuton/case_manager/case/config.rb, line 42
def unset(key)
  @running.delete(key)
end

Private Instance Methods

search_alias(key, level) click to toggle source
# File lib/teuton/case_manager/case/config.rb, line 48
def search_alias(key, level)
  if @ialias[key].class == Array
    return search_array_alias(@ialias[key], level)
  elsif [Integer, String, Symbol].include? @ialias[key].class
    return get(@ialias[key])
  end
  
  words = key.to_s.split('_')
  return 'NODATA' if words.size < 2

  return 'NODATA' unless %w[ip hostname username password].include? words[1]

  key2 = @ialias[words[0].to_sym]
  return 'NODATA' unless key2

  get("#{key2}_#{words[1]}".to_sym, level)
end
search_array_alias(keys, level) click to toggle source
# File lib/teuton/case_manager/case/config.rb, line 66
def search_array_alias(keys, level)
  values = []
  keys.each do |k|
    if k.class == Symbol
      values << get(k, level + 1)
      next
    end
    values << k
  end
  values.join('')
end