Simple talking module for your programs. Don't confuse it with logging. It's not logging. It's just the simplest possible module that allows your application to speak two kinds of messages, natural (standard) and (debug). It's easily configurable and embeddable into your stuff.
Add this line to your application's Gemfile:
gem 'talking'
And then execute:
$ bundle
Or install it yourself as:
$ gem install talking
Give voice to your class or module:
require 'talking'
class Person
include Talking::Talkative
end
borat = Person.new
borat.say('Hello!')
borat.debug('This is niiiice!')
The outputs can be configured using either stream, null or custom voices. Here are defaults:
Person.mouth.natural_voice = Talking::StreamVoice.new(STDERR)
Person.mouth.debug_voice = Talking::NullVoice.instance
Debug mode is actually automatic, whenever you provide DEBUG
environment variable set to 1
it will automatically set stream voice for debugging, otherwise the null one will be used. In the
end code we have something like this, so you can have an idea:
def mouth
@mouth ||= Mouth.new(
StreamVoice.new(STDERR),
ENV['DEBUG'] == '1' ? StreamVoice.new(STDERR) : NullVoice.instance
)
end
You can also add a proxy to your speaker objects:
module Borat
class << self
include Talking::Talkative
end
end
class Bruno
include Talking::TalkThrough
talk_through Borat
end
bruno = Bruno.new
bruno.say("Hello with Borat's voice!")
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/talking.