Class: Coradoc::Markdown::Serializer::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/coradoc/markdown/serializer/builder.rb

Overview

Fluent builder for a configured serializer runner.

Usage:

Serializer.build(:gfm) do |config|
  config.admonition_style = :container
  config.suppress_comments = false
end.call(element)

The block yields the Builder itself; assignments accumulate as overrides and are frozen into a Config when ‘runner` (or `call`) is invoked.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(flavor = Flavor::DEFAULT_FLAVOR) ⇒ Builder

Returns a new instance of Builder.



27
28
29
30
# File 'lib/coradoc/markdown/serializer/builder.rb', line 27

def initialize(flavor = Flavor::DEFAULT_FLAVOR)
  @flavor = flavor
  @overrides = {}
end

Instance Attribute Details

#flavorObject (readonly)

Returns the value of attribute flavor.



25
26
27
# File 'lib/coradoc/markdown/serializer/builder.rb', line 25

def flavor
  @flavor
end

#overridesObject (readonly)

Returns the value of attribute overrides.



25
26
27
# File 'lib/coradoc/markdown/serializer/builder.rb', line 25

def overrides
  @overrides
end

Instance Method Details

#apply(hash) ⇒ Object



38
39
40
41
# File 'lib/coradoc/markdown/serializer/builder.rb', line 38

def apply(hash)
  hash.each { |k, v| @overrides[k.to_sym] = v }
  self
end

#call(element) ⇒ Object



51
52
53
# File 'lib/coradoc/markdown/serializer/builder.rb', line 51

def call(element)
  runner.call(element)
end

#configObject



43
44
45
# File 'lib/coradoc/markdown/serializer/builder.rb', line 43

def config
  @config ||= Config.new(flavor: flavor, **overrides)
end

#runnerObject



47
48
49
# File 'lib/coradoc/markdown/serializer/builder.rb', line 47

def runner
  @runner ||= Runner.new(config: config, registry: Registrations.default_registry)
end