Module: Ea::Svg::EaEmitter
- Defined in:
- lib/ea/svg/ea_emitter.rb,
lib/ea/svg/ea_emitter/label.rb,
lib/ea/svg/ea_emitter/layer.rb,
lib/ea/svg/ea_emitter/style.rb,
lib/ea/svg/ea_emitter/canvas.rb,
lib/ea/svg/ea_emitter/labels.rb,
lib/ea/svg/ea_emitter/marker.rb,
lib/ea/svg/ea_emitter/element.rb,
lib/ea/svg/ea_emitter/markers.rb,
lib/ea/svg/ea_emitter/document.rb,
lib/ea/svg/ea_emitter/elements.rb,
lib/ea/svg/ea_emitter/background.rb,
lib/ea/svg/ea_emitter/connectors.rb,
lib/ea/svg/ea_emitter/compartment.rb,
lib/ea/svg/ea_emitter/marker/kind.rb,
lib/ea/svg/ea_emitter/marker/plus.rb,
lib/ea/svg/ea_emitter/ghost_labels.rb,
lib/ea/svg/ea_emitter/diagram_frame.rb,
lib/ea/svg/ea_emitter/font_resolver.rb,
lib/ea/svg/ea_emitter/text_renderer.rb,
lib/ea/svg/ea_emitter/color_resolver.rb,
lib/ea/svg/ea_emitter/element/filter.rb,
lib/ea/svg/ea_emitter/label/registry.rb,
lib/ea/svg/ea_emitter/marker/diamond.rb,
lib/ea/svg/ea_emitter/render_context.rb,
lib/ea/svg/ea_emitter/label/end_label.rb,
lib/ea/svg/ea_emitter/layer_sequencer.rb,
lib/ea/svg/ea_emitter/marker/registry.rb,
lib/ea/svg/ea_emitter/bounds_calculator.rb,
lib/ea/svg/ea_emitter/compartment/shape.rb,
lib/ea/svg/ea_emitter/marker/arrow_path.rb,
lib/ea/svg/ea_emitter/compartment/header.rb,
lib/ea/svg/ea_emitter/element/text_escape.rb,
lib/ea/svg/ea_emitter/element/bcol_decoder.rb,
lib/ea/svg/ea_emitter/element/header_lines.rb,
lib/ea/svg/ea_emitter/label/midpoint_label.rb,
lib/ea/svg/ea_emitter/marker/open_triangle.rb,
lib/ea/svg/ea_emitter/compartment/note_body.rb,
lib/ea/svg/ea_emitter/compartment/note_text.rb,
lib/ea/svg/ea_emitter/element/icon_renderer.rb,
lib/ea/svg/ea_emitter/marker/package_import.rb,
lib/ea/svg/ea_emitter/compartment/attributes.rb,
lib/ea/svg/ea_emitter/compartment/operations.rb,
lib/ea/svg/ea_emitter/element/shape_renderer.rb,
lib/ea/svg/ea_emitter/compartment/constraints.rb,
lib/ea/svg/ea_emitter/element/header_renderer.rb,
lib/ea/svg/ea_emitter/element/legend_renderer.rb,
lib/ea/svg/ea_emitter/element/divider_renderer.rb,
lib/ea/svg/ea_emitter/compartment/enum_literals.rb,
lib/ea/svg/ea_emitter/compartment/tagged_values.rb,
lib/ea/svg/ea_emitter/element/row_icon_renderer.rb,
lib/ea/svg/ea_emitter/compartment/header_divider.rb,
lib/ea/svg/ea_emitter/compartment/instance_slots.rb,
lib/ea/svg/ea_emitter/element/attribute_renderer.rb,
lib/ea/svg/ea_emitter/element/operation_renderer.rb,
lib/ea/svg/ea_emitter/element/constraint_renderer.rb,
lib/ea/svg/ea_emitter/element/note_shape_renderer.rb,
lib/ea/svg/ea_emitter/compartment/package_contents.rb,
lib/ea/svg/ea_emitter/element/compartment_geometry.rb,
lib/ea/svg/ea_emitter/element/header_line_pipeline.rb,
lib/ea/svg/ea_emitter/element/header_line_provider.rb,
lib/ea/svg/ea_emitter/element/tagged_value_renderer.rb,
lib/ea/svg/ea_emitter/compartment/instance_underline.rb,
lib/ea/svg/ea_emitter/element/attribute_line_builder.rb,
lib/ea/svg/ea_emitter/element/package_shape_renderer.rb,
lib/ea/svg/ea_emitter/compartment/package_from_parent.rb,
lib/ea/svg/ea_emitter/element/hand_draw_shape_renderer.rb,
lib/ea/svg/ea_emitter/element/stereotype_icon_renderer.rb,
lib/ea/svg/ea_emitter/element/header_line_provider/name.rb,
lib/ea/svg/ea_emitter/element/enumeration_literal_renderer.rb,
lib/ea/svg/ea_emitter/element/header_line_provider/parent_ghost.rb,
lib/ea/svg/ea_emitter/element/header_line_provider/instance_spec.rb,
lib/ea/svg/ea_emitter/element/header_line_provider/stereotype_label.rb
Overview
EaEmitter orchestrates SVG output that mirrors EA's layering and naming conventions.
Architecture:
Document (entry point)
└─ LayerSequencer (frame?, theme via diagram.theme)
├─ Background
├─ DiagramFrame (opt-in)
├─ Elements → Element::* compartment renderers
├─ Connectors → Layer
├─ Markers → Marker::Registry (OCP) → Layer
└─ Labels → TextRenderer
Cross-cutting:
Canvas, BoundsCalculator, ColorResolver, FontResolver
Ea::Theme::Definition / Registry / Loader (domain-level)
TextRenderer, Style
Theme is a top-level domain concept at Ea::Theme::*. See lib/ea/theme.rb for the full API.
Defined Under Namespace
Modules: Background, Compartment, Element, Label, Marker, Style Classes: BoundsCalculator, Canvas, ColorResolver, Connectors, DiagramFrame, Document, Elements, FontResolver, GhostLabels, Labels, Layer, LayerSequencer, Markers, RenderContext, TextRenderer