Class: SimpleHdGraph::Renderer::PlantUML::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/simple-hd-graph/renderer/plantuml/context.rb

Instance Method Summary collapse

Constructor Details

#initializeContext

Returns a new instance of Context.



5
6
7
# File 'lib/simple-hd-graph/renderer/plantuml/context.rb', line 5

def initialize
  @resource_renderer = Resource.new
end

Instance Method Details

#indent_resource(resource) ⇒ String

Parameters:

  • resource (String)

Returns:

  • (String)


36
37
38
39
40
# File 'lib/simple-hd-graph/renderer/plantuml/context.rb', line 36

def indent_resource(resource)
  @resource_renderer.render(resource).lines.map { |line|
    "  #{line}"
  }.join
end

#render(node) ⇒ Object

:reek:FeatureEnvy, :reek:DuplicateMethodCall

Parameters:



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/simple-hd-graph/renderer/plantuml/context.rb', line 13

def render(node)
  resources = node.resources.map { |resource|
    indent_resource(resource)
  }.join if node.resources.size > 0
  relations = node.relations.map { |relation|
    render_relation(relation)
  }.join("\n") if node.relations.size > 0
  depends = node.depends.map { |depending|
    render_depends(depending)
  }.join("\n") if node.depends.size > 0
  (<<-EOD).gsub(/^$\n/, '')
rectangle \"#{node.alias}\" as #{node.id} {
#{resources}
#{relations}
}
#{depends}
EOD
end

#render_depends(depending) ⇒ String

:reek:UtilityFunction

Parameters:

  • depending (Hash)

Returns:

  • (String)


57
58
59
60
# File 'lib/simple-hd-graph/renderer/plantuml/context.rb', line 57

def render_depends(depending)
  depender, dependee = depending.to_a.first
  "#{depender} -|> #{dependee}"
end

#render_relation(relation) ⇒ String

:reek:UtilityFunction

Parameters:

  • relation (Hash)

Returns:

  • (String)


47
48
49
50
# File 'lib/simple-hd-graph/renderer/plantuml/context.rb', line 47

def render_relation(relation)
  depender, dependee = relation.to_a.first
  "  #{depender} -d-|> #{dependee}"
end