Class: Lutaml::Ea::Diagram::SvgRenderer
- Inherits:
-
Object
- Object
- Lutaml::Ea::Diagram::SvgRenderer
- Defined in:
- lib/lutaml/ea/diagram/svg_renderer.rb
Overview
Main SVG renderer for EA diagrams
Constant Summary collapse
- DEFAULT_OPTIONS =
{ padding: 20, background_color: "#ffffff", grid_visible: false, interactive: false, css_classes: [], }.freeze
Instance Attribute Summary collapse
-
#bounds ⇒ Object
readonly
Returns the value of attribute bounds.
-
#diagram_renderer ⇒ Object
readonly
Returns the value of attribute diagram_renderer.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#style_resolver ⇒ Object
readonly
Returns the value of attribute style_resolver.
Instance Method Summary collapse
-
#initialize(diagram_renderer, options = {}) ⇒ SvgRenderer
constructor
A new instance of SvgRenderer.
-
#render ⇒ String
Render the complete SVG diagram.
Constructor Details
#initialize(diagram_renderer, options = {}) ⇒ SvgRenderer
Returns a new instance of SvgRenderer.
24 25 26 27 28 29 |
# File 'lib/lutaml/ea/diagram/svg_renderer.rb', line 24 def initialize(diagram_renderer, = {}) @diagram_renderer = diagram_renderer @options = DEFAULT_OPTIONS.merge() @bounds = diagram_renderer.bounds @style_resolver = StyleResolver.new([:config_path]) end |
Instance Attribute Details
#bounds ⇒ Object (readonly)
Returns the value of attribute bounds.
14 15 16 |
# File 'lib/lutaml/ea/diagram/svg_renderer.rb', line 14 def bounds @bounds end |
#diagram_renderer ⇒ Object (readonly)
Returns the value of attribute diagram_renderer.
14 15 16 |
# File 'lib/lutaml/ea/diagram/svg_renderer.rb', line 14 def diagram_renderer @diagram_renderer end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
14 15 16 |
# File 'lib/lutaml/ea/diagram/svg_renderer.rb', line 14 def @options end |
#style_resolver ⇒ Object (readonly)
Returns the value of attribute style_resolver.
14 15 16 |
# File 'lib/lutaml/ea/diagram/svg_renderer.rb', line 14 def style_resolver @style_resolver end |
Instance Method Details
#render ⇒ String
Render the complete SVG diagram
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/lutaml/ea/diagram/svg_renderer.rb', line 33 def render # rubocop:disable Metrics/AbcSize svg_content = +"" svg_content << svg_header svg_content << defs_section svg_content << background_layer svg_content << grid_layer if [:grid_visible] svg_content << connectors_layer svg_content << elements_layer svg_content << interactive_layer if [:interactive] svg_content << svg_content end |