diff options
| author | mokha <mokha@cisco.com> | 2018-03-13 19:06:00 -0600 |
|---|---|---|
| committer | mokha <mokha@cisco.com> | 2018-03-13 19:06:00 -0600 |
| commit | 01d2842510249334ad2e8b51fbf68e63392c8bf2 (patch) | |
| tree | 5795fc1d8a2740933a2cef88b5b201ad644229e7 | |
| parent | 80aebb773bb0d3e1d8420b6ab3cd9e83f83489a6 (diff) | |
add a distance parameter to shuffle the character back and forth.
| -rw-r--r-- | lib/xsay.rb | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/lib/xsay.rb b/lib/xsay.rb index ac9157f..cd2ccc7 100644 --- a/lib/xsay.rb +++ b/lib/xsay.rb @@ -6,6 +6,7 @@ module Xsay class CLI < Thor ANIMALS=Dir[File.expand_path("xsay/templates/*.template", File.dirname(__FILE__))] class_option :colour, default: :default, required: false + class_option :distance, default: 1, required: false, type: :numeric ANIMALS.each do |filename| animal = File.basename(filename).split(".")[0] @@ -31,22 +32,28 @@ module Xsay private - def render(message, template, colour: options[:colour].to_sym) + def render(message, template, colour: options[:colour].to_sym, distance: options[:distance]) message = message.join(' ') if message.respond_to?(:join) line_break = "-" * message.length - result = <<-MESSAGE + move = distance > 1 + distance.times do |n| + system 'clear' if move + spaces = " " * n + result = <<-MESSAGE #{line_break} < #{message} > #{line_break} -#{template} - MESSAGE - if colour == :rainbow - result.each_char.each_with_index do |x, i| - print x.colorize(String.colors[i % String.colors.size]) +#{template.gsub(/^/, "#{spaces}")} + MESSAGE + if colour == :rainbow + result.each_char.each_with_index do |x, i| + print x.colorize(String.colors[i % String.colors.size]) + end + else + say result.colorize(colour) end - else - say result.colorize(colour) + sleep 1 if move end nil end |
