class Docker2plantuml::PlantUMLWriter

Constants

I
II
III

Public Class Methods

new(container_list) click to toggle source
# File lib/docker2plantuml/writer.rb, line 9
def initialize(container_list)
  @container_list = container_list
end

Public Instance Methods

container_to_plant_uml(container) click to toggle source
# File lib/docker2plantuml/writer.rb, line 40
def container_to_plant_uml(container)
  container_name = container.container_name
  ports = ports_to_plant_uml(container)
  [
    I + "cloud [#{container.network_setting.network_name}\\n\\n]{",
    II + "node [#{container_name}\\n]{",
    ports.empty? ? III + '[ ]' : ports,
    II + '}',
    I + '}'
  ].join("\n")
end
containers_to_plant_uml() click to toggle source
# File lib/docker2plantuml/writer.rb, line 34
def containers_to_plant_uml
  @container_list
    .map { |c| container_to_plant_uml(c) }
    .join("\n")
end
host_ports_to_plant_uml() click to toggle source
# File lib/docker2plantuml/writer.rb, line 25
def host_ports_to_plant_uml
  @container_list
    .map(&:server_port_list)
    .reject(&:empty?)
    .inject([]) { |list, item| list + item }
    .map { |p| I + "[#{p}]" }
    .join("\n")
end
port_mapping(c_name, p_info) click to toggle source
# File lib/docker2plantuml/writer.rb, line 78
def port_mapping(c_name, p_info)
  "[#{c_name}:#{p_info.container_port}] -- [#{p_info.host_port}]"
end
port_mapping_to_plant_uml(container) click to toggle source
# File lib/docker2plantuml/writer.rb, line 67
def port_mapping_to_plant_uml(container)
  container_name = container.container_name
  return '' if container.port_info_list.empty?

  container
    .port_info_list
    .select(&:host_port)
    .map { |p| I + port_mapping(container_name, p) }
    .join("\n")
end
port_mappings_to_plant_uml() click to toggle source
# File lib/docker2plantuml/writer.rb, line 60
def port_mappings_to_plant_uml
  @container_list
    .map { |c| port_mapping_to_plant_uml(c) }
    .reject(&:empty?)
    .join("\n")
end
ports_to_plant_uml(container) click to toggle source
# File lib/docker2plantuml/writer.rb, line 52
def ports_to_plant_uml(container)
  container_name = container.container_name
  container
    .port_info_list
    .map { |p| III + "[#{container_name}:#{p.container_port}]" }
    .join("\n")
end
to_plant_uml() click to toggle source
# File lib/docker2plantuml/writer.rb, line 13
def to_plant_uml
  [
    '@startuml',
    'folder DockerHost {',
    host_ports_to_plant_uml,
    containers_to_plant_uml,
    port_mappings_to_plant_uml,
    '}',
    '@enduml'
  ].join("\n")
end