Consolidate ENV reads into a Config object
Assisted-by: Claude Opus 4.6 via pi
change sxxplkpywtpzxqwozrnvsorsvzkzyysr
commit 357f86133874c70c0afadff69b1971c835c1331d
author Alpha Chen <alpha@kejadlen.dev>
date
parent rykopszo
diff --git a/lib/config.rb b/lib/config.rb
new file mode 100644
index 0000000..d94de88
--- /dev/null
+++ b/lib/config.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+Config = Data.define(:database_url) do
+  def self.from_env(env = ENV)
+    new(
+      database_url: env.fetch("DATABASE_URL") { "db/ketchup.db" }
+    )
+  end
+end
diff --git a/lib/db.rb b/lib/db.rb
index df86307..52b0343 100644
--- a/lib/db.rb
+++ b/lib/db.rb
@@ -2,6 +2,9 @@
 
 require "sequel"
 
-DB = Sequel.sqlite(ENV.fetch("DATABASE_URL") { "db/ketchup.db" })
+require_relative "config"
+
+CONFIG = Config.from_env
+DB = Sequel.sqlite(CONFIG.database_url)
 Sequel.extension :migration
 Sequel::Migrator.run(DB, File.expand_path("../db/migrate", __dir__))