class Kitsune::Kit::OptionsBuilder
def self.build(current_options, required: [], defaults: {})
def self.build(current_options, required: [], defaults: {}) current = current_options.transform_keys(&:to_sym) filled = defaults.dup defaults.keys.each do |key| env_key = key.to_s.upcase filled[key] = ENV[env_key] if ENV[env_key] end filled.merge!(current) missing = required.select { |key| filled[key].nil? } unless missing.empty? abort "❌ Missing required options: #{missing.join(', ')}" end filled end