-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.rb
28 lines (22 loc) · 762 Bytes
/
app.rb
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
require 'roda'
require 'fast_jsonapi'
require 'bcrypt'
require 'dry-validation'
require 'rack/unreloader'
require 'securerandom'
require_relative 'db/database'
dev = ENV['RACK_ENV'] == 'development'
Unreloader = Rack::Unreloader.new(subclasses: %w[Roda], reload: dev) { App }
Dir[File.join(__dir__, 'models', '*.rb')].sort.each { |file| require file }
Dir[File.join(__dir__, 'services/**/', '*.rb')].sort.each { |file| require file }
Dir[File.join(__dir__, 'contracts', '*.rb')].sort.each { |file| require file }
class App < Roda
plugin :hash_routes
plugin :request_headers
::Unreloader.require('routes') {}
::Unreloader.require('services/**/*.rb') {}
::Unreloader.require('routes/support/*.rb') {}
route do |r|
r.hash_routes('')
end
end