stage-manager/server.rb

55 lines
1.3 KiB
Ruby

require 'logger'
require 'sequel'
require 'sqlite3'
require 'sinatra/base'
require 'rack/protection'
# Load the Sequel timestamps plugin
Sequel::Model.plugin :timestamps
# Initialize Sequel gem for database actions
DB = Sequel.connect(adapter: $conf.get('database.adapter'), database: $conf.get('database.database'))
# Load models
require_relative 'app/models/channel.rb'
require_relative 'app/models/video.rb'
class StageManager < Sinatra::Base
@@my_app = {}
def self.new(*) self < StageManager ? super : Rack::URLMap.new(@@my_app) end
def self.map(url) @@my_app[url] = self end
# Enable and configure sessions
enable :sessions
# Enable rack protection middleware
use Rack::Protection
# Set up static file serving
enable :static
set :public_folder, __dir__ + '/public'
# Set up our view engine
set :views, settings.root + '/views'
# Initialize logging
logger = Logger.new(STDOUT)
logger.level = Logger::INFO
# Load helper functions
require_relative 'app/helpers.rb'
helpers Helpers
# Map controllers
class IndexController < StageManager
map '/'
end
class ChannelController < StageManager
map '/channel'
end
class VideoController < StageManager
map '/video'
end
end
# Load controllers
Dir.glob('./app/routes/*.rb').each { |f| require f }