-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.ru
65 lines (51 loc) · 1.25 KB
/
config.ru
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# frozen_string_literal: true
require 'rubygems'
require 'bundler'
require 'logger'
Bundler.require
require 'time'
require './middleware/logger'
require './middleware/static_dispatch'
require './middleware/error_handler'
require './middleware/error_renderer'
require './middleware/etag'
require './app'
require './second_app'
use Rack::Reloader
use Middleware::Logger, logger: Logger.new($stdout, level: Logger::INFO)
use Middleware::ErrorRenderer
use Middleware::StaticDispatch
use Middleware::ErrorHandler, show_trace: true
use Middleware::Etag
app = App.new
# rubocop:disable Metrics/BlockLength
app.routes do
get '/' do
fresh_when(
'Hello world!',
etag: [1, 'test', { key: :value }],
cache_control: 'max-age=18000, private',
last_modified: (Time.new - 360).rfc2822
)
end
get '/about' do
'About'
end
post '/google' do
status(201)
headers('Location' => 'http://google.com')
nil # empty body
end
get '/profile/:id' do
headers('Content-Type' => 'application/json')
status(201)
params.to_json
end
post '/s/:article_slug/comments/:id' do
params.keys.join(', ')
end
resources :posts, except: %i[edit destroy]
mount '/another', SecondApp
end
# rubocop:enable Metrics/BlockLength
run app