class HerokuBuilder::Service

Public Class Methods

apply(environment) click to toggle source
# File lib/heroku_builder/service.rb, line 52
def self.apply(environment)
  config = config_from_environment(environment)
  name = config['app']['name']

  # find or create app
  update_app(name)

  # set env variables
  update_env_vars(name, environment)

  # find or create addons
  update_addons(name, environment)

  # deploy code
  run_deployment(name, environment)

  # find or create resource
  update_resources(name, environment)
end
config_file() click to toggle source
# File lib/heroku_builder/service.rb, line 3
def self.config_file
  @config_file ||= YAML.load(ERB.new(File.read('config/heroku.yml')).result)
end
config_from_environment(environment) click to toggle source
# File lib/heroku_builder/service.rb, line 7
def self.config_from_environment(environment)
  @config_from_environment ||= config_file[environment]
end
configure(environment) click to toggle source
# File lib/heroku_builder/service.rb, line 43
def self.configure(environment)
  config = config_from_environment(environment)
  name = config['app']['name']

  update_env_vars(name, environment)
  update_addons(name, environment)
  update_resources(name, environment)
end
deploy(environment) click to toggle source
# File lib/heroku_builder/service.rb, line 38
def self.deploy(environment)
  name = config_from_environment(environment)['app']['name']
  run_deployment(name, environment)
end
run_deployment(name, environment) click to toggle source
# File lib/heroku_builder/service.rb, line 15
def self.run_deployment(name, environment)
  git_branch = config_from_environment(environment)['app']['git_branch']
  Deployment.new.deploy(name, git_branch, environment)
end
update_addons(name, environment) click to toggle source
# File lib/heroku_builder/service.rb, line 26
def self.update_addons(name, environment)
  config = config_from_environment(environment)
  return if !config.key?('addons') || config['addons'].empty?
  AddOn.new.set_addons(name, config['addons'])
end
update_app(name) click to toggle source
# File lib/heroku_builder/service.rb, line 11
def self.update_app(name)
  App.new.find_or_create_app(name)
end
update_env_vars(name, environment) click to toggle source
# File lib/heroku_builder/service.rb, line 20
def self.update_env_vars(name, environment)
  config = config_from_environment(environment)
  return if !config.key?('config_vars') || config['config_vars'].empty?
  EnvVar.new.set_config_vars(name, config['config_vars'])
end
update_resources(name, environment) click to toggle source
# File lib/heroku_builder/service.rb, line 32
def self.update_resources(name, environment)
  config = config_from_environment(environment)
  return if !config.key?('resources') || config['resources'].empty?
  Resource.new.set_resources(name, config['resources'])
end