Class: Baykit::BayServer::BayDockers

Inherits:
Object
  • Object
show all
Includes:
Bcf, Util
Defined in:
lib/baykit/bayserver/bay_dockers.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBayDockers

Returns a new instance of BayDockers.



13
14
15
# File 'lib/baykit/bayserver/bay_dockers.rb', line 13

def initialize()
  @docker_map = {}
end

Instance Attribute Details

#docker_mapObject (readonly)

Returns the value of attribute docker_map.



11
12
13
# File 'lib/baykit/bayserver/bay_dockers.rb', line 11

def docker_map
  @docker_map
end

Instance Method Details

#create_docker(elm, parent) ⇒ Object



29
30
31
32
33
34
# File 'lib/baykit/bayserver/bay_dockers.rb', line 29

def create_docker(elm, parent)
  alias_name = elm.get_value("docker")
  d = create_docker_by_alias(elm.name, alias_name)
  d.init(elm, parent)
  d
end

#create_docker_by_alias(category, alias_name) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/baykit/bayserver/bay_dockers.rb', line 36

def create_docker_by_alias(category, alias_name)

  if StringUtil.empty?(alias_name)
    key = category
  else
    key = category + ":" + alias_name
  end

  cls = @docker_map[key]
  if cls == nil
    raise BayException.new(BayMessage.get(:CFG_DOCKER_NOT_FOUND, key))
  end

  require_file = cls.gsub(/::/, "/").gsub(/([a-z])([A-Z])/, "\\1_\\2").downcase.gsub('bay_server', 'bayserver').gsub('/docker/default_', '/docker/default')
  require require_file

  begin
    return Object.const_get(cls).new()
  rescue => e
    raise e
  end
end

#init(conf) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/baykit/bayserver/bay_dockers.rb', line 17

def init(conf)
  p = BcfParser.new()
  doc = p.parse(conf)
  #doc.print_document

  doc.content_list.each do |obj|
    if(obj.instance_of?(BcfKeyVal))
      @docker_map[obj.key] = obj.value
    end
  end
end