Module: Vedeu::Renderers
- Extended by:
- Enumerable, Renderers
- Included in:
- Renderers
- Defined in:
- lib/vedeu/output/renderers/all.rb,
lib/vedeu/output/renderers/file.rb,
lib/vedeu/output/renderers/html.rb,
lib/vedeu/output/renderers/json.rb,
lib/vedeu/output/renderers/null.rb,
lib/vedeu/output/renderers/text.rb,
lib/vedeu/output/renderers/terminal.rb,
lib/vedeu/output/renderers/escape_sequence.rb
Overview
Provides a single interface to all registered renderers.
Defined Under Namespace
Classes: EscapeSequence, File, HTML, JSON, Null, Terminal, Text
Class Method Summary collapse
- .mutex ⇒ Mutex private
- .render(*args) ⇒ Array<void>
-
.renderer(*renderers) ⇒ Set
Adds the given renderer class(es) to the list of renderers.
-
.renderers ⇒ Module
Provides access to the list of renderers.
- .reset ⇒ Set
- .storage ⇒ Set
Instance Method Summary collapse
- #mutex ⇒ Mutex private
- #render(*args) ⇒ Array<void>
-
#renderer(*renderers) ⇒ Set
Adds the given renderer class(es) to the list of renderers.
-
#renderers ⇒ Module
Provides access to the list of renderers.
- #reset ⇒ Set
- #storage ⇒ Set
Class Method Details
.mutex ⇒ Mutex (private)
67 68 69 |
# File 'lib/vedeu/output/renderers/all.rb', line 67 def mutex @mutex ||= Mutex.new end |
.render(*args) ⇒ Array<void>
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/vedeu/output/renderers/all.rb', line 25 def render(*args) threads = storage.map do |renderer| Thread.new(renderer) do mutex.synchronize do Vedeu.log(type: :debug, message: "Rendering with: '#{renderer}' (#{storage.size} defined)") renderer.render(*args) end end end threads.each(&:join) end |
.renderer(*renderers) ⇒ Set
Note:
A renderer class must respond to the ‘.render’ class method.
Adds the given renderer class(es) to the list of renderers.
48 49 50 51 52 |
# File 'lib/vedeu/output/renderers/all.rb', line 48 def renderer(*renderers) renderers.each { |renderer| storage.add(renderer) unless renderer.nil? } storage end |
.renderers ⇒ Module
Provides access to the list of renderers.
20 21 22 |
# File 'lib/vedeu/output/renderers/all.rb', line 20 def renderers self end |
.reset ⇒ Set
55 56 57 |
# File 'lib/vedeu/output/renderers/all.rb', line 55 def reset @storage = Set.new end |
.storage ⇒ Set
60 61 62 |
# File 'lib/vedeu/output/renderers/all.rb', line 60 def storage @storage ||= reset end |
Instance Method Details
#mutex ⇒ Mutex (private)
67 68 69 |
# File 'lib/vedeu/output/renderers/all.rb', line 67 def mutex @mutex ||= Mutex.new end |
#render(*args) ⇒ Array<void>
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/vedeu/output/renderers/all.rb', line 25 def render(*args) threads = storage.map do |renderer| Thread.new(renderer) do mutex.synchronize do Vedeu.log(type: :debug, message: "Rendering with: '#{renderer}' (#{storage.size} defined)") renderer.render(*args) end end end threads.each(&:join) end |
#renderer(*renderers) ⇒ Set
Note:
A renderer class must respond to the ‘.render’ class method.
Adds the given renderer class(es) to the list of renderers.
48 49 50 51 52 |
# File 'lib/vedeu/output/renderers/all.rb', line 48 def renderer(*renderers) renderers.each { |renderer| storage.add(renderer) unless renderer.nil? } storage end |
#renderers ⇒ Module
Provides access to the list of renderers.
20 21 22 |
# File 'lib/vedeu/output/renderers/all.rb', line 20 def renderers self end |
#reset ⇒ Set
55 56 57 |
# File 'lib/vedeu/output/renderers/all.rb', line 55 def reset @storage = Set.new end |
#storage ⇒ Set
60 61 62 |
# File 'lib/vedeu/output/renderers/all.rb', line 60 def storage @storage ||= reset end |