class HerokuAutoScale::HerokuOperations

Attributes

app_name[R]
heroku_connection[R]

Public Class Methods

new(api_key, app_name) click to toggle source
# File lib/heroku_auto_scale/heroku_operations.rb, line 7
def initialize(api_key, app_name)
  @heroku_connection = PlatformAPI.connect_oauth(api_key)
  @app_name          = app_name
end

Public Instance Methods

execute_dyno_scale(process_name, new_number_of_dynos) click to toggle source
# File lib/heroku_auto_scale/heroku_operations.rb, line 12
def execute_dyno_scale(process_name, new_number_of_dynos)
  if should_scale?(process_name, new_number_of_dynos)
    scale_dynos(process_name, new_number_of_dynos)
  end
end

Private Instance Methods

scale_dynos(process_name, new_number_of_dynos) click to toggle source
# File lib/heroku_auto_scale/heroku_operations.rb, line 19
def scale_dynos(process_name, new_number_of_dynos)
  heroku_connection.formation.update(
    app_name,
    process_name,
    {"quantity" => new_number_of_dynos}
  )
end
should_scale?(process_name, new_number_of_dynos) click to toggle source
# File lib/heroku_auto_scale/heroku_operations.rb, line 27
def should_scale?(process_name, new_number_of_dynos)
  response = heroku_connection.formation.info(app_name, process_name)
  response["quantity"] != new_number_of_dynos
end