Commit 6741d5b
Changed files (1)
lib
xsay
lib/xsay/render.rb
@@ -15,13 +15,23 @@ module Xsay
def render(message, template)
message = message.join(' ') if message.respond_to?(:join)
line_break = "-" * message.length
- move = distance > 0
- distance.downto(0) do |n|
- system 'clear' if move
- spaces = " " * n
+ distance.downto(0) do |frame|
+ draw(message, template, line_break, frame)
+ end
+ 0.upto(distance) do |frame|
+ draw(message, template, line_break, frame)
+ end
+ nil
+ end
+
+ private
+
+ def draw(message, template, line_break, frame)
+ system 'clear' if move?
+ spaces = " " * frame
result = <<-MESSAGE
#{line_break}
-< #{n.even? ? message : ' ' * message.length} >
+< #{frame.even? ? message : ' ' * message.length} >
#{line_break}
#{template.gsub(/^/, "#{spaces}")}
@@ -33,10 +43,11 @@ module Xsay
else
puts result.colorize(colour)
end
- sleep speed if move
- end
- nil
+ sleep speed if move?
end
+ def move?
+ distance > 0
+ end
end
end