diff --git a/Gemfile b/Gemfile index 3405056..ccb4d01 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,7 @@ source "https://rubygems.org" # Development group :development do gem "irb" + gem "dotenv" end # Base diff --git a/Gemfile.lock b/Gemfile.lock index 29782aa..e31afc5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,6 +5,7 @@ GEM bigdecimal (4.1.3) commonmarker (2.10.1-x86_64-linux) date (3.6.0) + dotenv (3.2.0) erb (6.0.7) erubi (1.13.1) io-console (0.9.4) @@ -67,6 +68,7 @@ PLATFORMS DEPENDENCIES bcrypt commonmarker + dotenv erubi irb mail @@ -82,6 +84,7 @@ CHECKSUMS bigdecimal (4.1.3) sha256=61ebe1e5e559bdc3cc6f2c0ee7f427321fc838f59611c294356eb04d6e21cf66 commonmarker (2.10.1-x86_64-linux) sha256=4b2c4b9084baca131146c92dde02bcb40ef3d2768a6772648c1970bb51842734 date (3.6.0) sha256=18ac945c4e24ebd93534f8eab8c2fd8c5604b3e977105b3798d62a1e8d27b580 + dotenv (3.2.0) sha256=e375b83121ea7ca4ce20f214740076129ab8514cd81378161f11c03853fe619d erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92 erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9 io-console (0.9.4) sha256=a403304f32928ee85e56d457b4612ca43f2703b561a3258844992bd24085fbb1 diff --git a/config/boot.rb b/config/boot.rb new file mode 100644 index 0000000..54f3bde --- /dev/null +++ b/config/boot.rb @@ -0,0 +1,4 @@ +if ENV.fetch("RACK_ENV", "development") == "development" + require "dotenv" + Dotenv.load(File.expand_path("../.env", __dir__)) +end diff --git a/netig.rb b/netig.rb index a6a3f38..746d166 100644 --- a/netig.rb +++ b/netig.rb @@ -1,13 +1,18 @@ +# Initialisation de l'environnement +require_relative "config/boot" + +# Dépendances externes require "roda" require "rodauth" +# Composants de l'application require_relative "lib/database" require_relative "config/mail" require_relative "lib/contact_form" require_relative "lib/contact_mailer" require_relative "lib/document_renderer" -# Application et plugins Roda +# Configuration de Roda class Netig < Roda plugin :render, escape: true plugin :public @@ -18,15 +23,15 @@ class Netig < Roda plugin :flash end -# Authentification +# Configuration de l'authentification require_relative "config/rodauth" -# Autorisations et routes secondaires +# Autorisations et routes dédiées require_relative "lib/authorization" require_relative "routes/noyau" require_relative "routes/contact" -# Routes principales +# Routes des pages publiques class Netig route do |r| r.rodauth