Class: Pubid::FormatRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/pubid/format_registry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parent: nil) ⇒ FormatRegistry

Returns a new instance of FormatRegistry.



7
8
9
10
# File 'lib/pubid/format_registry.rb', line 7

def initialize(parent: nil)
  @formats = {}
  @parent = parent
end

Instance Attribute Details

#formatsObject (readonly)

Returns the value of attribute formats.



5
6
7
# File 'lib/pubid/format_registry.rb', line 5

def formats
  @formats
end

Instance Method Details

#has?(format) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/pubid/format_registry.rb', line 38

def has?(format)
  @formats.key?(format.to_sym) || (@parent&.has?(format) || false)
end

#parser_for(format) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/pubid/format_registry.rb', line 24

def parser_for(format)
  entry = @formats[format.to_sym]
  return entry[:parser] if entry && entry[:parser]
  return @parent.parser_for(format) if @parent

  nil
end

#register(format, renderer: nil, parser: nil) ⇒ Object



12
13
14
# File 'lib/pubid/format_registry.rb', line 12

def register(format, renderer: nil, parser: nil)
  @formats[format.to_sym] = { renderer:, parser: }
end

#registered_formatsObject



32
33
34
35
36
# File 'lib/pubid/format_registry.rb', line 32

def registered_formats
  formats = @formats.keys
  formats |= @parent.registered_formats if @parent
  formats
end

#renderer_for(format) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/pubid/format_registry.rb', line 16

def renderer_for(format)
  entry = @formats[format.to_sym]
  return entry[:renderer] if entry && entry[:renderer]
  return @parent.renderer_for(format) if @parent

  nil
end