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/options.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
Modules: Options Classes: EscapeSequence, File, HTML, JSON, Null, Terminal, Text
Class Method Summary collapse
-
.clear ⇒ Array<void>
Instructs each renderer registered with Vedeu to clear their content.
- .in_memory ⇒ Set private
- .mutex ⇒ Mutex private
-
.render(output) ⇒ Array<void>
Instructs each renderer registered with Vedeu to render the output as content.
-
.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 private
- .toggle_cursor ⇒ void private
Instance Method Summary collapse
-
#clear ⇒ Array<void>
Instructs each renderer registered with Vedeu to clear their content.
- #in_memory ⇒ Set private
- #mutex ⇒ Mutex private
-
#render(output) ⇒ Array<void>
Instructs each renderer registered with Vedeu to render the output as content.
-
#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 private
- #toggle_cursor ⇒ void private
Class Method Details
.clear ⇒ Array<void>
Instructs each renderer registered with Vedeu to clear their content.
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/vedeu/output/renderers/all.rb', line 19 def clear threads = storage.map do |renderer| Thread.new(renderer) do mutex.synchronize do toggle_cursor { renderer.clear } end end end threads.each(&:join) '' end |
.in_memory ⇒ Set (private)
90 91 92 |
# File 'lib/vedeu/output/renderers/all.rb', line 90 def in_memory Set.new end |
.mutex ⇒ Mutex (private)
95 96 97 |
# File 'lib/vedeu/output/renderers/all.rb', line 95 def mutex @mutex ||= Mutex.new end |
.render(output) ⇒ Array<void>
Instructs each renderer registered with Vedeu to render the output as content.
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/vedeu/output/renderers/all.rb', line 50 def render(output) threads = storage.map do |renderer| Thread.new(renderer) do mutex.synchronize do toggle_cursor { renderer.render(output) } end end end threads.each(&:join) output end |
.renderer(*renderers) ⇒ Set
A renderer class must respond to the ‘.render’ class method.
Adds the given renderer class(es) to the list of renderers.
73 74 75 76 77 |
# File 'lib/vedeu/output/renderers/all.rb', line 73 def renderer(*renderers) renderers.each { |renderer| storage.add(renderer) unless renderer.nil? } storage end |
.renderers ⇒ Module
Provides access to the list of renderers.
38 39 40 |
# File 'lib/vedeu/output/renderers/all.rb', line 38 def renderers self end |
.reset ⇒ Set
83 84 85 |
# File 'lib/vedeu/output/renderers/all.rb', line 83 def reset @storage = in_memory end |
.storage ⇒ Set (private)
100 101 102 |
# File 'lib/vedeu/output/renderers/all.rb', line 100 def storage @storage ||= in_memory end |
.toggle_cursor ⇒ void (private)
This method returns an undefined value.
105 106 107 108 109 110 111 |
# File 'lib/vedeu/output/renderers/all.rb', line 105 def toggle_cursor Vedeu.hide_cursor(Vedeu.focus) yield Vedeu.show_cursor(Vedeu.focus) end |
Instance Method Details
#clear ⇒ Array<void>
Instructs each renderer registered with Vedeu to clear their content.
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/vedeu/output/renderers/all.rb', line 19 def clear threads = storage.map do |renderer| Thread.new(renderer) do mutex.synchronize do toggle_cursor { renderer.clear } end end end threads.each(&:join) '' end |
#in_memory ⇒ Set (private)
90 91 92 |
# File 'lib/vedeu/output/renderers/all.rb', line 90 def in_memory Set.new end |
#mutex ⇒ Mutex (private)
95 96 97 |
# File 'lib/vedeu/output/renderers/all.rb', line 95 def mutex @mutex ||= Mutex.new end |
#render(output) ⇒ Array<void>
Instructs each renderer registered with Vedeu to render the output as content.
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/vedeu/output/renderers/all.rb', line 50 def render(output) threads = storage.map do |renderer| Thread.new(renderer) do mutex.synchronize do toggle_cursor { renderer.render(output) } end end end threads.each(&:join) output end |
#renderer(*renderers) ⇒ Set
A renderer class must respond to the ‘.render’ class method.
Adds the given renderer class(es) to the list of renderers.
73 74 75 76 77 |
# File 'lib/vedeu/output/renderers/all.rb', line 73 def renderer(*renderers) renderers.each { |renderer| storage.add(renderer) unless renderer.nil? } storage end |
#renderers ⇒ Module
Provides access to the list of renderers.
38 39 40 |
# File 'lib/vedeu/output/renderers/all.rb', line 38 def renderers self end |
#reset ⇒ Set
83 84 85 |
# File 'lib/vedeu/output/renderers/all.rb', line 83 def reset @storage = in_memory end |
#storage ⇒ Set (private)
100 101 102 |
# File 'lib/vedeu/output/renderers/all.rb', line 100 def storage @storage ||= in_memory end |
#toggle_cursor ⇒ void (private)
This method returns an undefined value.
105 106 107 108 109 110 111 |
# File 'lib/vedeu/output/renderers/all.rb', line 105 def toggle_cursor Vedeu.hide_cursor(Vedeu.focus) yield Vedeu.show_cursor(Vedeu.focus) end |