Class: SimpleSpeaker::Speaker
- Inherits:
-
Object
- Object
- SimpleSpeaker::Speaker
- Defined in:
- lib/simple_speaker.rb
Instance Method Summary collapse
- #ask_if_needed(question, no_prompt = 0, default = 'y') ⇒ Object
- #daemon(daemon_server = nil) ⇒ Object
-
#initialize(logger_path = nil, logger_error_path = nil) ⇒ Speaker
constructor
A new instance of Speaker.
- #log(str) ⇒ Object
- #send_to_all(str) ⇒ Object
- #speak_up(str, in_mail = 1) ⇒ Object
- #tell_error(e, src, in_mail = 1) ⇒ Object
- #user_input(input) ⇒ Object
Constructor Details
#initialize(logger_path = nil, logger_error_path = nil) ⇒ Speaker
Returns a new instance of Speaker.
5 6 7 8 9 10 |
# File 'lib/simple_speaker.rb', line 5 def initialize(logger_path = nil, logger_error_path = nil) @logger = Logger.new(logger_path) unless logger_path.nil? @logger_error = Logger.new(logger_error_path) unless logger_error_path.nil? @daemons = [] @user_input = nil end |
Instance Method Details
#ask_if_needed(question, no_prompt = 0, default = 'y') ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/simple_speaker.rb', line 12 def ask_if_needed(question, no_prompt = 0, default = 'y') ask_if_needed = default if no_prompt.to_i == 0 self.speak_up(question, 0) if Daemon.is_daemon? wtime = 0 while @user_input.nil? sleep 1 ask_if_needed = @user_input break if (wtime += 1) > USER_INPUT_TIMEOUT end @user_input = nil else ask_if_needed = STDIN.gets.strip end end ask_if_needed end |
#daemon(daemon_server = nil) ⇒ Object
31 32 33 |
# File 'lib/simple_speaker.rb', line 31 def daemon(daemon_server = nil) @daemons << daemon_server if daemon_server end |
#log(str) ⇒ Object
50 51 52 |
# File 'lib/simple_speaker.rb', line 50 def log(str) @logger.info(str) if @logger end |
#send_to_all(str) ⇒ Object
46 47 48 |
# File 'lib/simple_speaker.rb', line 46 def send_to_all(str) @daemons.each { |d| d.send_data "#{str}\n" } end |
#speak_up(str, in_mail = 1) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/simple_speaker.rb', line 35 def speak_up(str, in_mail = 1) puts str send_to_all(str) @logger.info(str) if @logger Thread.current[:email_msg] += str + NEW_LINE if Thread.current[:email_msg] if in_mail.to_i > 0 Thread.current[:send_email] = in_mail.to_i if Thread.current[:send_email] end str end |
#tell_error(e, src, in_mail = 1) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/simple_speaker.rb', line 54 def tell_error(e, src, in_mail = 1) puts "In #{src}" send_to_all(src) puts e send_to_all(e) @logger_error.error("ERROR #{Time.now.utc.to_s} #{src}") if @logger_error @logger_error.error(e) if @logger_error Thread.current[:email_msg] += "ERROR #{Time.now.utc.to_s} #{src}" + NEW_LINE if Thread.current[:email_msg] Thread.current[:email_msg] += e.to_s + NEW_LINE if Thread.current[:email_msg] if in_mail.to_i > 0 Thread.current[:send_email] = in_mail.to_i if Thread.current[:send_email] end end |
#user_input(input) ⇒ Object
68 69 70 |
# File 'lib/simple_speaker.rb', line 68 def user_input(input) @user_input = input end |