diff --git a/src/app.rb b/src/app.rb index b2ba757..eaf00f9 100644 --- a/src/app.rb +++ b/src/app.rb @@ -4,20 +4,31 @@ 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 in routes (must happen after Sequel is loaded!) +require_relative 'routes/api1' +require_relative 'routes/benchmark' +require_relative 'routes/hardware' +require_relative 'routes/index' +require_relative 'routes/reports' +require_relative 'routes/result' +require_relative 'routes/test' -# Load the routes -require_relative 'routes/init' +# GameData - main app that gets launched +# - inherits from Sinatra::Base to instantiate the server +# - sets up some base app configuration +# - registers route classes with the base app +class GameData < Sinatra::Base -class GameData < Server + enable :sessions + + # Set up static file serving + enable :static + set :public_folder, File.join(__dir__, '/../public') use IndexRoutes use HardwareRoutes diff --git a/src/helpers.rb b/src/helpers.rb index 05c0d0f..bd318f8 100644 --- a/src/helpers.rb +++ b/src/helpers.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative 'appinfo' + # Helpers - view helper functions module Helpers diff --git a/src/models/init.rb b/src/models/init.rb deleted file mode 100644 index 5434fc6..0000000 --- a/src/models/init.rb +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -require_relative 'hardware' -require_relative 'benchmark' -require_relative 'result' -require_relative 'test' diff --git a/src/routes/api1.rb b/src/routes/api1.rb index 4b0d86c..13a8719 100644 --- a/src/routes/api1.rb +++ b/src/routes/api1.rb @@ -1,6 +1,11 @@ # frozen_string_literal: true +require 'sinatra/json' + require_relative '../server' +require_relative '../models/benchmark' +require_relative '../models/test' +require_relative '../models/result' # /api/v1 routes class APIv1Routes < Server diff --git a/src/routes/benchmark.rb b/src/routes/benchmark.rb index 0a1072f..535256f 100644 --- a/src/routes/benchmark.rb +++ b/src/routes/benchmark.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative '../server' +require_relative '../models/benchmark' # /benchmark routes class BenchmarkRoutes < Server diff --git a/src/routes/hardware.rb b/src/routes/hardware.rb index 51c7e3e..2ba2ec5 100644 --- a/src/routes/hardware.rb +++ b/src/routes/hardware.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true require_relative '../server' +require_relative '../models/hardware' +require_relative '../models/benchmark' # /hardware routes class HardwareRoutes < Server diff --git a/src/routes/index.rb b/src/routes/index.rb index 62c61c8..94c3509 100644 --- a/src/routes/index.rb +++ b/src/routes/index.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative '../server' +require_relative '../models/test' # / (top-level) routes class IndexRoutes < Server diff --git a/src/routes/init.rb b/src/routes/init.rb deleted file mode 100644 index 4d2fdec..0000000 --- a/src/routes/init.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -require_relative 'index' -require_relative 'hardware' -require_relative 'benchmark' -require_relative 'reports' -require_relative 'result' -require_relative 'test' - -require_relative 'api1' diff --git a/src/routes/reports.rb b/src/routes/reports.rb index 05cc25d..529e09e 100644 --- a/src/routes/reports.rb +++ b/src/routes/reports.rb @@ -1,6 +1,11 @@ # frozen_string_literal: true +require 'sinatra/json' + require_relative '../server' +require_relative '../models/benchmark' +require_relative '../models/result' +require_relative '../models/test' # /reports routes class ReportsRoutes < Server diff --git a/src/routes/result.rb b/src/routes/result.rb index d953b72..c3d9ba8 100644 --- a/src/routes/result.rb +++ b/src/routes/result.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative '../server' +require_relative '../models/result' # /result routes class ResultRoutes < Server diff --git a/src/routes/test.rb b/src/routes/test.rb index 0a3583f..79f2002 100644 --- a/src/routes/test.rb +++ b/src/routes/test.rb @@ -1,6 +1,9 @@ # frozen_string_literal: true require_relative '../server' +require_relative '../models/benchmark' +require_relative '../models/hardware' +require_relative '../models/test' # /test routes class TestRoutes < Server diff --git a/src/server.rb b/src/server.rb index b7a95d8..6a439f4 100755 --- a/src/server.rb +++ b/src/server.rb @@ -1,17 +1,10 @@ # frozen_string_literal: true require 'sinatra/base' -require 'sinatra/json' -# Base app +# Server - base modular Sinatra app class class Server < Sinatra::Base - enable :sessions - - # Set up static file serving - enable :static - set :public_folder, File.join(__dir__, '/../public') - # Register view helpers require_relative 'helpers' helpers Helpers