stage-manager/server.rb

52 lines
1.2 KiB
Ruby
Raw Normal View History

require 'logger'
require 'sequel'
require 'sqlite3'
require 'sinatra/base'
require_relative 'lib/config.rb'
# Load configuration file
$conf = Config.new(File.join(__dir__, 'data/config.yaml'))
# 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 'lib/models/channel.rb'
require_relative 'lib/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 :sessions
enable :static
set :public_folder, __dir__ + '/public'
set :views, settings.root + '/views'
# Initialize logging
logger = Logger.new(STDOUT)
logger.level = Logger::INFO
# Load helper functions
require_relative 'lib/helpers.rb'
helpers Helpers
# Map controllers
class IndexController < StageManager
map '/'
end
class ChannelController < StageManager
map '/channel'
end
class VideoController < StageManager
map '/video'
end
end
Dir.glob('./lib/routes/*.rb').each { |f| require f }