Class: Postsvg::Translation::PsRenderer
- Inherits:
-
Object
- Object
- Postsvg::Translation::PsRenderer
- Defined in:
- lib/postsvg/translation/ps_renderer.rb
Overview
Top-level orchestrator: takes an Svg::Document, walks its element tree via a HandlerRegistry, and produces a Model::Program whose body the Serializer consumes.
Constant Summary collapse
- DEFAULT_REGISTRY =
HandlerRegistry.new
Class Attribute Summary collapse
-
.default_registered ⇒ Object
readonly
Returns the value of attribute default_registered.
Instance Attribute Summary collapse
-
#document ⇒ Object
readonly
Returns the value of attribute document.
-
#eps ⇒ Object
readonly
Returns the value of attribute eps.
-
#registry ⇒ Object
readonly
Returns the value of attribute registry.
Class Method Summary collapse
- .call(document, eps: false, registry: nil) ⇒ Object
-
.default_registry ⇒ Object
Public accessor: returns the default registry after ensuring handlers are registered.
-
.register_default_handlers! ⇒ Object
Idempotent: only registers once.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(document, eps:, registry:) ⇒ PsRenderer
constructor
A new instance of PsRenderer.
Constructor Details
#initialize(document, eps:, registry:) ⇒ PsRenderer
Returns a new instance of PsRenderer.
54 55 56 57 58 |
# File 'lib/postsvg/translation/ps_renderer.rb', line 54 def initialize(document, eps:, registry:) @document = document @eps = eps @registry = registry end |
Class Attribute Details
.default_registered ⇒ Object (readonly)
Returns the value of attribute default_registered.
13 14 15 |
# File 'lib/postsvg/translation/ps_renderer.rb', line 13 def default_registered @default_registered end |
Instance Attribute Details
#document ⇒ Object (readonly)
Returns the value of attribute document.
52 53 54 |
# File 'lib/postsvg/translation/ps_renderer.rb', line 52 def document @document end |
#eps ⇒ Object (readonly)
Returns the value of attribute eps.
52 53 54 |
# File 'lib/postsvg/translation/ps_renderer.rb', line 52 def eps @eps end |
#registry ⇒ Object (readonly)
Returns the value of attribute registry.
52 53 54 |
# File 'lib/postsvg/translation/ps_renderer.rb', line 52 def registry @registry end |
Class Method Details
.call(document, eps: false, registry: nil) ⇒ Object
47 48 49 50 |
# File 'lib/postsvg/translation/ps_renderer.rb', line 47 def self.call(document, eps: false, registry: nil) registry ||= default_registry new(document, eps: eps, registry: registry).call end |
.default_registry ⇒ Object
Public accessor: returns the default registry after ensuring handlers are registered. Use this in handlers instead of reaching for the constant directly.
41 42 43 44 |
# File 'lib/postsvg/translation/ps_renderer.rb', line 41 def default_registry register_default_handlers! DEFAULT_REGISTRY end |
.register_default_handlers! ⇒ Object
Idempotent: only registers once. Called automatically by
default_registry before each translate, so callers don't
need to remember to invoke it.
Instance Method Details
#call ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/postsvg/translation/ps_renderer.rb', line 60 def call emitter = RecordEmitter.new bbox = context = Context.new(emitter: emitter, bounding_box: bbox, clip_path_registry: document.clip_paths, options: { eps: eps }) dispatch(document.root_element, context) build_program(emitter, context) end |