Add rake dev task for in-memory development server
Assisted-by: Claude Sonnet 4.6 via Claude Code
change wpxmyutsnpplpvpyskvnoozvryzqqrtv
commit 944f16a892b39c0045d16034602cb069b4138390
author Alpha Chen <alpha@kejadlen.dev>
date
parent sxmvuumq
diff --git a/Rakefile b/Rakefile
index 7b659cf..3c67845 100644
--- a/Rakefile
+++ b/Rakefile
@@ -19,6 +19,14 @@ Minitest::TestTask.create(:test)
 
 task default: :test
 
+desc "Start dev server with pre-seeded in-memory database"
+task :dev do
+  Sequel::Migrator.run(DB, "db/migrate") unless Dir.empty?("db/migrate")
+
+  require "rack"
+  Rack::Server.start(config: "config.ru", Port: 9292)
+end
+
 namespace :db do
   desc "Run pending migrations"
   task :migrate do
diff --git a/lib/config.rb b/lib/config.rb
index 9c83173..b41817a 100644
--- a/lib/config.rb
+++ b/lib/config.rb
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 class Config < Data.define(:database_url)
-  def self.load
-    new(database_url: ENV.fetch("DATABASE_URL", "db/domus.db"))
+  def self.from_env
+    new(database_url: ENV.fetch("DATABASE_URL"))
   end
 end
diff --git a/lib/db.rb b/lib/db.rb
index 8a9dcc9..ae8a2dc 100644
--- a/lib/db.rb
+++ b/lib/db.rb
@@ -2,6 +2,7 @@
 
 require "sequel"
 require "sequel/extensions/migration"
+
 require_relative "config"
 
-DB = Sequel.sqlite(Config.load.database_url)
+DB = Sequel.sqlite(Config.from_env.database_url)