Class: Docker2plantuml::PlantUMLWriter
- Inherits:
-
Object
- Object
- Docker2plantuml::PlantUMLWriter
- Defined in:
- lib/docker2plantuml/writer.rb
Constant Summary collapse
- I =
' '
- II =
' '
- III =
' '
Instance Method Summary collapse
- #container_to_plant_uml(container) ⇒ Object
- #containers_to_plant_uml ⇒ Object
- #host_ports_to_plant_uml ⇒ Object
-
#initialize(container_list) ⇒ PlantUMLWriter
constructor
A new instance of PlantUMLWriter.
- #port_mapping(c_name, p_info) ⇒ Object
- #port_mapping_to_plant_uml(container) ⇒ Object
- #port_mappings_to_plant_uml ⇒ Object
- #ports_to_plant_uml(container) ⇒ Object
- #to_plant_uml ⇒ Object
Constructor Details
#initialize(container_list) ⇒ PlantUMLWriter
Returns a new instance of PlantUMLWriter.
9 10 11 |
# File 'lib/docker2plantuml/writer.rb', line 9 def initialize(container_list) @container_list = container_list end |
Instance Method Details
#container_to_plant_uml(container) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# 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 ⇒ Object
34 35 36 37 38 |
# 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 ⇒ Object
25 26 27 28 29 30 31 32 |
# 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) ⇒ Object
78 79 80 |
# 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) ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# 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 ⇒ Object
60 61 62 63 64 65 |
# 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) ⇒ Object
52 53 54 55 56 57 58 |
# 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 ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# 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 |