class ACappella::Singer
Public Class Methods
new(voice)
click to toggle source
# File lib/acappella/singer.rb, line 5 def initialize(voice) raise ACappella::VoiceTypeError.new("can't sing voice.") unless valid_voice?(voice) @voice = voice end
Public Instance Methods
sing(lyrics)
click to toggle source
# File lib/acappella/singer.rb, line 11 def sing(lyrics) logging(lyrics) shellescaped_args = [@voice, lyrics].shelljoin system("say -v #{shellescaped_args}") end
Private Instance Methods
logging(lyrics)
click to toggle source
# File lib/acappella/singer.rb, line 25 def logging(lyrics) sang_at = Time.now.strftime('%Y-%m-%d %H:%M:%S') puts [sang_at, lyrics].join("\t") end
valid_voice?(voice)
click to toggle source
# File lib/acappella/singer.rb, line 21 def valid_voice?(voice) ACappella::VoiceType::VOICE_VARIATIONS.include?(voice) end