Commit 6c5d043
Changed files (2)
lib
lib/xsay.rb
@@ -1,5 +1,6 @@
require "xsay/version"
require "thor"
+require "colorize"
module Xsay
class CLI < Thor
@@ -23,21 +24,33 @@ module Xsay
desc "random <message>", "xsay random hello"
def random(*args)
- render(args, IO.read(ANIMALS.shuffle.sample))
+ render(args, IO.read(ANIMALS.shuffle.sample), colour: String.colors.sample)
+ end
+
+ desc "rainbow <message>", "xsay rainbow hello world"
+ def rainbow(*args)
+ render(args, IO.read(ANIMALS.shuffle.sample), colour: :rainbow)
end
private
- def render(message, template)
+ def render(message, template, colour: :default)
message = message.join(' ') if message.respond_to?(:join)
line_break = "-" * message.length
- say <<-MESSAGE
+ 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])
+ end
+ else
+ puts result.colorize(colour)
+ end
end
end
end
xsay.gemspec
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
spec.require_paths = ["lib"]
spec.add_dependency "thor", "~> 0.20"
+ spec.add_dependency "colorize", "~> 0.8"
spec.add_development_dependency "bundler", "~> 1.16"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec", "~> 3.0"