First draft of example single file roda app
This commit is contained in:
parent
671955a386
commit
514108bfc9
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
/.rake_tasks~
|
||||||
|
/temp.db
|
||||||
|
/vendor/
|
||||||
|
/bin/
|
||||||
15
Gemfile
Normal file
15
Gemfile
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gem "roda"
|
||||||
|
|
||||||
|
# change to gunicorn or passenger if you prefer:
|
||||||
|
gem "puma"
|
||||||
|
|
||||||
|
group :development, :test do
|
||||||
|
gem "rerun"
|
||||||
|
end
|
||||||
|
|
||||||
|
group :test do
|
||||||
|
gem 'capybara'
|
||||||
|
gem 'minitest'
|
||||||
|
end
|
||||||
65
Gemfile.lock
Normal file
65
Gemfile.lock
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
addressable (2.8.7)
|
||||||
|
public_suffix (>= 2.0.2, < 7.0)
|
||||||
|
capybara (3.40.0)
|
||||||
|
addressable
|
||||||
|
matrix
|
||||||
|
mini_mime (>= 0.1.3)
|
||||||
|
nokogiri (~> 1.11)
|
||||||
|
rack (>= 1.6.0)
|
||||||
|
rack-test (>= 0.6.3)
|
||||||
|
regexp_parser (>= 1.5, < 3.0)
|
||||||
|
xpath (~> 3.2)
|
||||||
|
ffi (1.17.2)
|
||||||
|
ffi (1.17.2-arm64-darwin)
|
||||||
|
ffi (1.17.2-x86_64-darwin)
|
||||||
|
listen (3.9.0)
|
||||||
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.10)
|
||||||
|
matrix (0.4.3)
|
||||||
|
mini_mime (1.1.5)
|
||||||
|
mini_portile2 (2.8.9)
|
||||||
|
minitest (5.25.5)
|
||||||
|
nio4r (2.7.4)
|
||||||
|
nokogiri (1.18.8)
|
||||||
|
mini_portile2 (~> 2.8.2)
|
||||||
|
racc (~> 1.4)
|
||||||
|
nokogiri (1.18.8-arm64-darwin)
|
||||||
|
racc (~> 1.4)
|
||||||
|
nokogiri (1.18.8-x86_64-darwin)
|
||||||
|
racc (~> 1.4)
|
||||||
|
public_suffix (6.0.2)
|
||||||
|
puma (6.6.0)
|
||||||
|
nio4r (~> 2.0)
|
||||||
|
racc (1.8.1)
|
||||||
|
rack (3.1.16)
|
||||||
|
rack-test (2.2.0)
|
||||||
|
rack (>= 1.3)
|
||||||
|
rb-fsevent (0.11.2)
|
||||||
|
rb-inotify (0.11.1)
|
||||||
|
ffi (~> 1.0)
|
||||||
|
regexp_parser (2.10.0)
|
||||||
|
rerun (0.14.0)
|
||||||
|
listen (~> 3.0)
|
||||||
|
roda (3.93.0)
|
||||||
|
rack
|
||||||
|
xpath (3.2.0)
|
||||||
|
nokogiri (~> 1.8)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
arm64-darwin
|
||||||
|
ruby
|
||||||
|
x86_64-darwin
|
||||||
|
x86_64-linux
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
capybara
|
||||||
|
minitest
|
||||||
|
puma
|
||||||
|
rerun
|
||||||
|
roda
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
2.6.9
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
# roda-step1-single-file-ish
|
# Roda step 1 - Single File app (sort of)
|
||||||
|
|
||||||
Example single file Roda web app. There are extra files for launching the server, running tests, the license, etc, but the app itself is all in app.rb.
|
Example single file Roda web app. There are extra files for launching the server, running tests, the license, etc, but the app itself is all in app.rb.
|
||||||
11
app.rb
Normal file
11
app.rb
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
require "roda"
|
||||||
|
|
||||||
|
class App < Roda
|
||||||
|
route do |r|
|
||||||
|
|
||||||
|
r.on do
|
||||||
|
"Hello World!"
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
17
myapp.service
Normal file
17
myapp.service
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
[Unit]
|
||||||
|
Description=My roda template
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=myapp
|
||||||
|
Group=myapp
|
||||||
|
WorkingDirectory=/opt/myapp
|
||||||
|
Environment=RACK_ENV=production
|
||||||
|
|
||||||
|
ExecStart=/usr/bin/puma
|
||||||
|
TimeoutStopSec=300
|
||||||
|
KillMode=mixed
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
26
test_app.rb
Normal file
26
test_app.rb
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
require 'minitest/autorun'
|
||||||
|
require 'capybara/minitest'
|
||||||
|
|
||||||
|
require_relative 'app'
|
||||||
|
|
||||||
|
Capybara.app = App
|
||||||
|
|
||||||
|
class AppTest < Minitest::Test
|
||||||
|
include Capybara::DSL
|
||||||
|
include Capybara::Minitest::Assertions
|
||||||
|
|
||||||
|
def teardown
|
||||||
|
Capybara.reset_sessions!
|
||||||
|
Capybara.use_default_driver
|
||||||
|
end
|
||||||
|
|
||||||
|
# always passes, just to make sure tests are running
|
||||||
|
def test_the_truth
|
||||||
|
assert true
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_home_page_exists
|
||||||
|
visit '/'
|
||||||
|
assert_equal 200, page.status_code
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in a new issue