Class: Ea::Svg::EaEmitter::Element::TaggedValueRenderer
- Inherits:
-
Object
- Object
- Ea::Svg::EaEmitter::Element::TaggedValueRenderer
- Defined in:
- lib/ea/svg/ea_emitter/element/tagged_value_renderer.rb
Overview
Emits the tagged-values compartment text <g>. EA renders
tagged values as a sub-compartment below attributes with an
italic "tags" header followed by key = value lines:
<text style="...font-style:italic;...">tags</text>
<text style="...font-style:normal;...">isCollection = false</text>
<text style="...font-style:normal;...">noPropertyType = false</text>
Constant Summary collapse
- HEADER_TEXT =
"tags"- HEADER_X_OFFSET =
5- LINE_X_OFFSET =
5
Class Method Summary collapse
Class Method Details
.render(tagged_values, bounds:, first_y:, family:, size:, fill: "#000000") ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ea/svg/ea_emitter/element/tagged_value_renderer.rb', line 19 def self.render(tagged_values, bounds:, first_y:, family:, size:, fill: "#000000") line_h = size + 4 text_blocks = [] text_blocks << build_text(bounds.x + centered_x_offset(bounds, size), first_y, HEADER_TEXT, family, size, fill, style: "italic") tagged_values.each_with_index do |tv, idx| y = first_y + ((idx + 1) * line_h) text_blocks << build_text(bounds.x + LINE_X_OFFSET, y, "#{tv.key} = #{tv.value}", family, size, fill) end %(<g style="#{Style::TEXT_GROUP}">\n#{text_blocks.join("\n")}\n</g>) end |