Commit 6741d5b

mokha <mokha@cisco.com>
2018-03-21 01:12:41
move back and forth.
1 parent 288b4b4
Changed files (1)
lib
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