Switched over to a modular Sinatra app layout
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -3,5 +3,5 @@ require_relative 'src/config.rb'
|
||||
$conf = Config.new(File.join(__dir__, 'config/defaults.yaml'))
|
||||
|
||||
root = ::File.dirname(__FILE__)
|
||||
require ::File.join( root, 'src', 'server' )
|
||||
require ::File.join( root, 'src', 'app' )
|
||||
run GameData.new
|
||||
|
30
src/app.rb
Normal file
30
src/app.rb
Normal file
@@ -0,0 +1,30 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'sinatra/base'
|
||||
require 'sequel'
|
||||
require 'sqlite3'
|
||||
|
||||
require_relative 'appinfo'
|
||||
|
||||
# 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 'models/init'
|
||||
|
||||
# Load the routes
|
||||
require_relative 'routes/init'
|
||||
|
||||
class GameData < Server
|
||||
|
||||
use IndexRoutes
|
||||
use HardwareRoutes
|
||||
use BenchmarkRoutes
|
||||
use TestRoutes
|
||||
use ResultRoutes
|
||||
use ReportsRoutes
|
||||
use APIv1Routes
|
||||
|
||||
end
|
@@ -1,7 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../server'
|
||||
|
||||
# /api/v1 routes
|
||||
class GameData < Sinatra::Base
|
||||
class APIv1Routes < Server
|
||||
|
||||
get '/api/v1/benchmark/details' do
|
||||
benchmark_id = params[:benchmark_id]
|
||||
|
@@ -1,7 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../server'
|
||||
|
||||
# /benchmark routes
|
||||
class GameData < Sinatra::Base
|
||||
class BenchmarkRoutes < Server
|
||||
|
||||
get '/benchmark' do
|
||||
benchmarks = Benchmark.reverse(:updated_at).limit(10).all()
|
||||
|
@@ -1,7 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../server'
|
||||
|
||||
# /hardware routes
|
||||
class GameData < Sinatra::Base
|
||||
class HardwareRoutes < Server
|
||||
|
||||
get '/hardware' do
|
||||
hardware = Hardware.reverse(:updated_at).limit(10).all()
|
||||
|
@@ -1,7 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../server'
|
||||
|
||||
# / (top-level) routes
|
||||
class GameData < Sinatra::Base
|
||||
class IndexRoutes < Server
|
||||
|
||||
get '/' do
|
||||
tests = Test.reverse(:updated_at).limit(10).all()
|
||||
|
@@ -1,7 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../server'
|
||||
|
||||
# /reports routes
|
||||
class GameData < Sinatra::Base
|
||||
class ReportsRoutes < Server
|
||||
|
||||
get '/report' do
|
||||
benchmarks = Benchmark.order(:name).all()
|
||||
|
@@ -1,7 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../server'
|
||||
|
||||
# /result routes
|
||||
class GameData < Sinatra::Base
|
||||
class ResultRoutes < Server
|
||||
|
||||
post '/result/add' do
|
||||
result_minimum = params[:result_minimum] if params.key?(:result_minimum)
|
||||
|
@@ -1,7 +1,9 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../server'
|
||||
|
||||
# /test routes
|
||||
class GameData < Sinatra::Base
|
||||
class TestRoutes < Server
|
||||
|
||||
get '/test' do
|
||||
tests = Test.reverse(:updated_at).limit(10).all()
|
||||
|
@@ -2,18 +2,9 @@
|
||||
|
||||
require 'sinatra/base'
|
||||
require 'sinatra/json'
|
||||
require 'sequel'
|
||||
require 'sqlite3'
|
||||
|
||||
require_relative 'appinfo'
|
||||
|
||||
# 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'))
|
||||
|
||||
# Base app
|
||||
class GameData < Sinatra::Base
|
||||
class Server < Sinatra::Base
|
||||
|
||||
enable :sessions
|
||||
|
||||
@@ -29,8 +20,3 @@ class GameData < Sinatra::Base
|
||||
set :views, File.join(settings.root, '/../views')
|
||||
|
||||
end
|
||||
|
||||
# Load routes
|
||||
require_relative 'routes/init'
|
||||
# Load models
|
||||
require_relative 'models/init'
|
||||
|
Reference in New Issue
Block a user