lib/vedeu/output/renderers/all.rb in vedeu-0.6.65 vs lib/vedeu/output/renderers/all.rb in vedeu-0.6.66
- old
+ new
@@ -16,18 +16,13 @@
# Vedeu.renderers.clear
#
# @return [Array<void>]
def clear
storage.map do |renderer|
- Vedeu.log(type: :render,
- message: "Clearing via #{renderer.class.name}".freeze)
+ log('Clearing', renderer)
- Thread.new(renderer) do
- mutex.synchronize do
- toggle_cursor { renderer.clear }
- end
- end
+ threaded(renderer) { renderer.clear }
end.each(&:join) if Vedeu.ready?
''
end
@@ -49,18 +44,13 @@
#
# @param output [void]
# @return [Array<void>]
def render(output)
storage.map do |renderer|
- Vedeu.log(type: :render,
- message: "Rendering via #{renderer.class.name}".freeze)
+ log('Rendering', renderer)
- Thread.new(renderer) do
- mutex.synchronize do
- toggle_cursor { renderer.render(output) }
- end
- end
+ threaded(renderer) { renderer.render(output) }
end.each(&:join) if Vedeu.ready?
output
end
@@ -94,17 +84,36 @@
# @return [Set]
def in_memory
Set.new
end
+ # @param message [String]
+ # @param renderer [Class]
+ # @return [void]
+ def log(message, renderer)
+ Vedeu.log(type: :render,
+ message: "#{message} via #{renderer.class.name}".freeze)
+ end
+
# @return [Mutex]
def mutex
@mutex ||= Mutex.new
end
# @return [Set]
def storage
@storage ||= in_memory
+ end
+
+ # @return [void]
+ def threaded(renderer)
+ Thread.new(renderer) do
+ mutex.synchronize do
+ toggle_cursor do
+ yield
+ end
+ end
+ end
end
# @return [void]
def toggle_cursor
Vedeu.trigger(:_hide_cursor_)