Sha256: a1859b2c6846c006efc468808a95add60b0b230e519b2f476146931e0cbf7e5d

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

require "heroku-api"

module GithubHerokuDeployer
  class Heroku

    def initialize(options)
      @heroku_api_key = options[:heroku_api_key]
      @heroku_app_name = options[:heroku_app_name]
    end


    def heroku
      @heroku ||= ::Heroku::API.new(api_key: @heroku_api_key)
    end

    def app
      @app ||= find_or_create_app
    end

    def find_or_create_app
      find_app
    rescue ::Heroku::API::Errors::NotFound
      create_app
    end

    def find_app
      heroku.get_app(@heroku_app_name)
    end

    def create_app
      heroku.post_app(name: @heroku_app_name)
    end

    def run(command)
      heroku.post_ps(@heroku_app_name, command)
    end
    
    def config_set(config_vars)
      heroku.put_config_vars(@heroku_app_name, config_vars)
    end

    def delete_app
      heroku.delete_app(@heroku_app_name)
    end

    # def add_deployhooks_http(url)
    #   add_addon("deployhooks:http", url: url)
    # end

    # def add_addon(addon, options={})
    #   heroku.post_addon(@heroku_app_name, addon, options)
    # end

    # def delete_addon(addon)
    #   heroku.delete_addon(@heroku_app_name, addon)
    # end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
github_heroku_deployer-0.1.0 lib/github_heroku_deployer/heroku.rb