Class: Docsmith::Diff::Renderers::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/docsmith/diff/renderers/registry.rb

Overview

Registry for diff renderers keyed by content type string. Falls back to Base for unregistered types. Use Docsmith.configure { |c| c.register_diff_renderer(:html, MyRenderer) } to add custom renderers at runtime.

Class Method Summary collapse

Class Method Details

.allHash

Returns copy of registered renderers.

Returns:

  • (Hash)

    copy of registered renderers



28
29
30
# File 'lib/docsmith/diff/renderers/registry.rb', line 28

def all
  @renderers.dup
end

.for(content_type) ⇒ Class

Returns renderer class; defaults to Base for unregistered types.

Parameters:

  • content_type (String, Symbol)

Returns:

  • (Class)

    renderer class; defaults to Base for unregistered types



23
24
25
# File 'lib/docsmith/diff/renderers/registry.rb', line 23

def for(content_type)
  @renderers.fetch(content_type.to_s, Base)
end

.register(content_type, renderer_class) ⇒ void

This method returns an undefined value.

Parameters:

  • content_type (String, Symbol)
  • renderer_class (Class)


17
18
19
# File 'lib/docsmith/diff/renderers/registry.rb', line 17

def register(content_type, renderer_class)
  @renderers[content_type.to_s] = renderer_class
end

.reset!void

This method returns an undefined value.

Resets registry to empty — for test isolation only.



34
35
36
# File 'lib/docsmith/diff/renderers/registry.rb', line 34

def reset!
  @renderers = {}
end