Class: DynoBattery

Inherits:
Object
  • Object
show all
Defined in:
lib/dynobattery.rb

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ DynoBattery

Returns a new instance of DynoBattery.



2
3
4
# File 'lib/dynobattery.rb', line 2

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/dynobattery.rb', line 6

def call(env)
  if defined?(DYNO_DOMAIN)
    uri = URI.parse("http://dyno-battery.heroku.com/")
    http = Net::HTTP.new(uri.host, uri.port)
    http.open_timeout = 3
    http.read_timeout = 3
    start = Time.now  
    status, headers, response = @app.call(env)  
    stop = Time.now
    if defined?(DYNO_USER) && defined?(DYNO_PASSWORD)
      get_dynos
      http.post("/heroku","name=#{DYNO_DOMAIN}&date=#{start.to_s}&time=#{"%10.6f" % (stop - start)}&dyno=#{@dynos}")
    else
      http.post("/heroku","name=#{DYNO_DOMAIN}&date=#{start.to_s}&time=#{"%10.6f" % (stop - start)}")
    end
  end
  [status, headers, response]
end

#get_dynosObject



26
27
28
29
# File 'lib/dynobattery.rb', line 26

def get_dynos
  heroku = Heroku::Client.new(DYNO_USER, DYNO_PASSWORD)
  @dynos = heroku.info(DYNO_DOMAIN)[:dynos]
end