From 0927a00960b3b4e4ebb36a42b3ecd36d400fa723 Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Thu, 9 Mar 2023 23:22:18 -0500 Subject: [PATCH] Added rake task to start server in a more production-ready manner using Puma; move config values to config directory --- .gitignore | 2 +- Rakefile | 6 +++++- app/config.rb | 2 +- config.ru | 4 ++++ {data => config}/defaults.yaml | 4 ++++ config/puma.rb | 6 ++++++ server.rb | 6 +----- 7 files changed, 22 insertions(+), 8 deletions(-) rename {data => config}/defaults.yaml (68%) create mode 100644 config/puma.rb diff --git a/.gitignore b/.gitignore index b5de16f..cef6529 100644 --- a/.gitignore +++ b/.gitignore @@ -60,7 +60,7 @@ build-iPhoneSimulator/ data/stgm.db # Local configuration -data/config.yaml +config/config.yaml # Node modules for Grunt.js node_modules/ diff --git a/Rakefile b/Rakefile index 26efb05..9e192ae 100644 --- a/Rakefile +++ b/Rakefile @@ -15,7 +15,11 @@ namespace :db do end namespace :server do - task :dev do + task :start do + system("bundle exec puma -C config/puma.rb") + end + + task :reload do %x{guard} end end diff --git a/app/config.rb b/app/config.rb index 29be78e..da2d625 100644 --- a/app/config.rb +++ b/app/config.rb @@ -2,7 +2,7 @@ require 'yaml' class Config - DEFAULT_CONFIG = 'data/defaults.yaml' + DEFAULT_CONFIG = 'config/defaults.yaml' def initialize(config_path) @data = YAML::load_file(DEFAULT_CONFIG) diff --git a/config.ru b/config.ru index 14a0874..fd41c75 100644 --- a/config.ru +++ b/config.ru @@ -1,3 +1,7 @@ +# Load application config +require_relative 'app/config.rb' +$conf = Config.new(File.join(__dir__, 'config/config.yaml')) + # Load Sinatra server require_relative './server.rb' diff --git a/data/defaults.yaml b/config/defaults.yaml similarity index 68% rename from data/defaults.yaml rename to config/defaults.yaml index 8a1d608..5375033 100644 --- a/data/defaults.yaml +++ b/config/defaults.yaml @@ -1,6 +1,10 @@ stgm: base_directory: '/srv/videos' +server: + address: '127.0.0.1' + port: 4567 + database: adapter: 'sqlite' database: 'data/stgm.db' diff --git a/config/puma.rb b/config/puma.rb new file mode 100644 index 0000000..4e5fe8a --- /dev/null +++ b/config/puma.rb @@ -0,0 +1,6 @@ +# Load application config +require './app/config.rb' +$conf = Config.new(File.join(__dir__, 'config/config.yaml')) + +bind_address = "tcp://#{$conf.get('server.address')}:#{$conf.get('server.port')}" +bind bind_address diff --git a/server.rb b/server.rb index a991308..3bbbce5 100644 --- a/server.rb +++ b/server.rb @@ -3,11 +3,6 @@ require 'sequel' require 'sqlite3' require 'sinatra/base' -require_relative 'app/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 @@ -48,4 +43,5 @@ class StageManager < Sinatra::Base end end +# Load controllers Dir.glob('./app/routes/*.rb').each { |f| require f }