add to_bool and env_helper
This commit is contained in:
parent
30a299a863
commit
4de41824ce
|
@ -17,6 +17,8 @@ require 'action_cable/engine'
|
|||
require 'sprockets/railtie'
|
||||
# require "rails/test_unit/railtie"
|
||||
|
||||
require_relative './env_helper' # Helper to set ENV and print missing messages
|
||||
|
||||
# Require the gems listed in Gemfile, including any gems
|
||||
# you've limited to :test, :development, or :production.
|
||||
Bundler.require(*Rails.groups)
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module EnvHelper
|
||||
class RequiredEnvError < StandardError; end
|
||||
|
||||
module_function
|
||||
|
||||
def load(key, default = nil, message: '', raise: false)
|
||||
env_key = key.to_s.upcase.strip
|
||||
default_message(key, default)
|
||||
ENV[env_key] ||= default
|
||||
|
||||
return ENV[env_key] if ENV[env_key].present?
|
||||
|
||||
raise RequiredEnvError, missing_message(key, message) if raise
|
||||
|
||||
puts missing_message(key, message)
|
||||
nil
|
||||
end
|
||||
|
||||
def missing_message(key, message = '')
|
||||
msg = "🚫 ENV NOT SET: #{key}"
|
||||
msg += "\s-\s#{message}" if message.present?
|
||||
msg
|
||||
end
|
||||
|
||||
def default_message(key, default = nil)
|
||||
return if ENV[key].present? && default.blank?
|
||||
|
||||
puts "✅ ENV #{key} DEFAULT: #{output_default(key, default)}"
|
||||
end
|
||||
|
||||
def output_default(key, default)
|
||||
return '🤐 SECRET REDACTED' if key.include?('SECRET') || key.ends_with?('API_KEY')
|
||||
|
||||
default
|
||||
end
|
||||
end
|
|
@ -0,0 +1,18 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# @see https://gist.github.com/equivalent/3825916#gistcomment-1762089
|
||||
module ToBoolean
|
||||
def to_bool
|
||||
ActiveRecord::Type::Boolean.new.cast(self)
|
||||
end
|
||||
end
|
||||
|
||||
class NilClass; include ToBoolean; end
|
||||
|
||||
class TrueClass; include ToBoolean; end
|
||||
|
||||
class FalseClass; include ToBoolean; end
|
||||
|
||||
class Numeric; include ToBoolean; end
|
||||
|
||||
class String; include ToBoolean; end
|
Loading…
Reference in New Issue