60 lines
1002 B
Ruby
60 lines
1002 B
Ruby
class AppHost
|
|
attr_reader :env_vars, :current_env
|
|
|
|
def initialize(env_vars = ENV, current_env = Rails.env)
|
|
@env_vars = env_vars
|
|
@current_env = current_env
|
|
end
|
|
|
|
def domain
|
|
env_vars.fetch("DOMAIN") { default_domain }
|
|
end
|
|
|
|
def port
|
|
env_vars.fetch("WEB_PORT") { default_port }
|
|
end
|
|
|
|
def domain_with_port
|
|
[domain, port].compact.join(":")
|
|
end
|
|
|
|
def protocol
|
|
using_ssl? ? :https : :http
|
|
end
|
|
|
|
def using_ssl?
|
|
env_vars.fetch("USE_SSL") { default_use_ssl }
|
|
end
|
|
|
|
private
|
|
|
|
DEFAULTS = {
|
|
development: {
|
|
host: "localhost",
|
|
port: 3000,
|
|
use_ssl: false,
|
|
},
|
|
test: {
|
|
host: "localhost",
|
|
port: 31337,
|
|
use_ssl: false,
|
|
},
|
|
production: {
|
|
host: "mesuite.ai",
|
|
use_ssl: true,
|
|
}
|
|
}
|
|
|
|
def default_domain
|
|
DEFAULTS.dig(current_env.to_sym, :host)
|
|
end
|
|
|
|
def default_port
|
|
DEFAULTS.dig(current_env.to_sym, :port)
|
|
end
|
|
|
|
def default_use_ssl
|
|
DEFAULTS.dig(current_env.to_sym, :use_ssl)
|
|
end
|
|
end
|