Add new-series form on root page
Assisted-by: Claude Opus 4.6 via pi
diff --git a/Gemfile b/Gemfile
index 3ff8731..81b64b1 100644
--- a/Gemfile
+++ b/Gemfile
@@ -7,6 +7,7 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "puma"
gem "rackup"
gem "roda"
+gem "tilt"
gem "sequel"
gem "sqlite3"
diff --git a/Gemfile.lock b/Gemfile.lock
index 52025ae..d610586 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -104,6 +104,7 @@ GEM
strscan (3.1.7)
terminal-table (4.0.0)
unicode-display_width (>= 1.1.1, < 4)
+ tilt (2.7.0)
tsort (0.2.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
@@ -135,6 +136,7 @@ DEPENDENCIES
sequel
sqlite3
steep
+ tilt
CHECKSUMS
activesupport (8.1.2) sha256=88842578ccd0d40f658289b0e8c842acfe9af751afee2e0744a7873f50b6fdae
@@ -194,6 +196,7 @@ CHECKSUMS
steep (1.10.0) sha256=1b295b55f9aaff1b8d3ee42453ee55bc2a1078fda0268f288edb2dc014f4d7d1
strscan (3.1.7) sha256=5f76462b94a3ea50b44973225b7d75b2cb96d4e1bee9ef1319b99ca117b72c8c
terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2
+ tilt (2.7.0) sha256=0d5b9ba69f6a36490c64b0eee9f6e9aad517e20dcc848800a06eb116f08c6ab3
tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
diff --git a/lib/web.rb b/lib/web.rb
index ec41dc1..ff450a9 100644
--- a/lib/web.rb
+++ b/lib/web.rb
@@ -3,9 +3,11 @@
require "roda"
class Web < Roda
+ plugin :render, engine: "erb"
+
route do |r|
r.root do
- "Hello, World!"
+ render("series/new")
end
end
end
diff --git a/test/test_web.rb b/test/test_web.rb
index d305409..002ae86 100644
--- a/test/test_web.rb
+++ b/test/test_web.rb
@@ -10,10 +10,11 @@ class TestWeb < Minitest::Test
def app = Web.app
- def test_root_returns_hello_world
+ def test_root_shows_new_series_form
get "/"
assert last_response.ok?
- assert_equal "Hello, World!", last_response.body
+ assert_includes last_response.body, '<form method="post" action="/series">'
+ assert_includes last_response.body, 'name="name"'
end
end
diff --git a/views/series/new.erb b/views/series/new.erb
new file mode 100644
index 0000000..e6d477c
--- /dev/null
+++ b/views/series/new.erb
@@ -0,0 +1,8 @@
+<h1>New Series</h1>
+
+<form method="post" action="/series">
+ <label for="name">Name</label>
+ <input type="text" id="name" name="name" required>
+
+ <button type="submit">Create</button>
+</form>