module HerokuEnv

Public Instance Methods

add_env(**args) click to toggle source
# File lib/nxt_heroku_env/heroku_env.rb, line 12
def add_env(**args)
  args.each do |env_name, heroku_app_name|
    app_name_pattern = heroku_app_name.is_a?(Regexp) ? heroku_app_name : Regexp.new(heroku_app_name.to_s)
    heroku_app_name_to_env_mappings[app_name_pattern] = env_name.to_sym

    define_method("#{env_name}?") do
      env == env_name.to_sym
    end

    define_method(env_name) do |&block|
      block.call if env == env_name.to_sym
    end
  end
end
app_name() click to toggle source
# File lib/nxt_heroku_env/heroku_env.rb, line 4
def app_name
  ENV["HEROKU_APP_NAME"].presence
end
configure(&block) click to toggle source
# File lib/nxt_heroku_env/heroku_env.rb, line 37
def configure(&block)
  block.call(self)
end
env() click to toggle source
# File lib/nxt_heroku_env/heroku_env.rb, line 27
def env
  @env ||= begin
    env_name = heroku_app_name_to_env_mappings.keys.find { |heroku_app_name_pattern|
      heroku_app_name_pattern.match?(app_name)
    }

    heroku_app_name_to_env_mappings[env_name]
  end
end
heroku_app_name_to_env_mappings() click to toggle source
# File lib/nxt_heroku_env/heroku_env.rb, line 8
def heroku_app_name_to_env_mappings
  @heroku_app_name_to_env_mappings ||= {}
end