Module: Whacamole

Defined in:
lib/whacamole.rb,
lib/whacamole/config.rb,
lib/whacamole/events.rb,
lib/whacamole/stream.rb,
lib/whacamole/version.rb,
lib/whacamole/heroku_wrapper.rb

Defined Under Namespace

Modules: Events Classes: Config, HerokuWrapper, Stream

Constant Summary collapse

VERSION =
"1.1.0"
@@config =
{}

Class Method Summary collapse

Class Method Details

.configure(app_name) {|| ... } ⇒ Object

Yields:

  • ()


10
11
12
13
# File 'lib/whacamole.rb', line 10

def self.configure(app_name)
  @@config[app_name.to_s] ||= Config.new(app_name)
  yield @@config[app_name.to_s]
end

.monitorObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/whacamole.rb', line 15

def self.monitor
  threads = []
  @@config.each do |app_name, config|
    threads << Thread.new do
      heroku = HerokuWrapper.new(app_name, config.api_token, config.dynos)

      while true
        stream_url = heroku.create_log_session
        Stream.new(stream_url, heroku, config.restart_threshold, &config.event_handler).watch
      end
    end
  end
  threads.collect(&:join)
end