diff options
| author | mokha <mokha@cisco.com> | 2018-03-20 19:12:41 -0600 |
|---|---|---|
| committer | mokha <mokha@cisco.com> | 2018-03-20 19:12:41 -0600 |
| commit | 6741d5bf7361d20d0968d54e26b57f370c5a5cc7 (patch) | |
| tree | 2c6681c3f2a20e1c303dfe59a60a59ab208d5f0e | |
| parent | 288b4b44b6754b2fce86064a4cd8925a1b022ba0 (diff) | |
move back and forth.
| -rw-r--r-- | lib/xsay/render.rb | 27 |
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 |
