summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormokha <mokha@cisco.com>2018-03-20 19:12:41 -0600
committermokha <mokha@cisco.com>2018-03-20 19:12:41 -0600
commit6741d5bf7361d20d0968d54e26b57f370c5a5cc7 (patch)
tree2c6681c3f2a20e1c303dfe59a60a59ab208d5f0e
parent288b4b44b6754b2fce86064a4cd8925a1b022ba0 (diff)
move back and forth.
-rw-r--r--lib/xsay/render.rb27
1 files changed, 19 insertions, 8 deletions
diff --git a/lib/xsay/render.rb b/lib/xsay/render.rb
index b84b2ba..4b542ab 100644
--- a/lib/xsay/render.rb
+++ b/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