module HerokuConf
Base module for HerokuConf
Constants
- DEFAULT_OPTIONS
Public Class Methods
configure!(params = {})
click to toggle source
# File lib/herokuconf.rb, line 14 def configure!(params = {}) return if ENV['DYNO'] app, keys, exclude = DEFAULT_OPTIONS.dup.merge!(params).values_at( :app, :keys, :exclude ) pairs = config_vars(app) pairs.select! { |k, _| keys.include? k } if keys pairs.reject! { |k, _| exclude.include? k } if exclude pairs.each { |k, v| ENV[k] = v } end
Private Class Methods
api_key()
click to toggle source
# File lib/herokuconf.rb, line 47 def api_key @api_key ||= Netrc.read['api.heroku.com'].password end
client()
click to toggle source
# File lib/herokuconf.rb, line 43 def client @client ||= Heroku::API.new(api_key: api_key) end
config_vars(app = nil)
click to toggle source
# File lib/herokuconf.rb, line 27 def config_vars(app = nil) app ||= parse_app client.get_config_vars(app).body end
parse_app()
click to toggle source
# File lib/herokuconf.rb, line 32 def parse_app remotes.first[1].split('/').last.split('.').first end
remotes()
click to toggle source
# File lib/herokuconf.rb, line 36 def remotes remotes = `git remote -v`.split("\n").map(&:split) remotes.select! { |x| x.first == 'heroku' && x.last == '(push)' } fail('No app found') unless remotes.size == 1 remotes end