Commit 40c565a
2026-08-28 18:06:14
1 parent
1ba3b9c
Changed files (1)
lib
elelem
lib/elelem/terminal.rb
@@ -43,20 +43,14 @@ module Elelem
end
def print(text)
- return if quiet?
-
- stop_dots
- return if blank?(text)
+ return unless prepare_output(text)
$stdout.print text
@at_line_start = false
end
def say(text)
- return if quiet?
-
- stop_dots
- return if blank?(text)
+ return unless prepare_output(text)
$stdout.puts text
@at_line_start = true
@@ -83,7 +77,7 @@ module Elelem
stop_dots
@dots_thread = Thread.new do
- loop do
+ until Thread.current[:stop]
$stdout.print "."
$stdout.flush
sleep 0.1
@@ -93,6 +87,13 @@ module Elelem
private
+ def prepare_output(text)
+ return false if quiet?
+
+ stop_dots
+ !blank?(text)
+ end
+
def blank?(text)
text.nil? || text.to_s.strip.empty?
end
@@ -100,7 +101,8 @@ module Elelem
def stop_dots
return unless @dots_thread
- @dots_thread.kill
+ @dots_thread[:stop] = true
+ @dots_thread.join
@dots_thread = nil
newline
end