Module: Utopia::Project
- Defined in:
- lib/utopia/project.rb,
lib/utopia/project/base.rb,
lib/utopia/project/guide.rb,
lib/utopia/project/linkify.rb,
lib/utopia/project/version.rb,
lib/utopia/project/document.rb,
lib/utopia/project/renderer.rb
Defined Under Namespace
Classes: Base, Document, Guide, Linkify, Renderer
Constant Summary collapse
- SITE_ROOT =
The root directory of the web application files.
File.("../..", __dir__)
- PAGES_ROOT =
The root directory for the utopia middleware.
File.("pages", SITE_ROOT)
- PUBLIC_ROOT =
The root directory for static assets.
File.("public", SITE_ROOT)
- VERSION =
"0.23.0"
Class Method Summary collapse
-
.call(builder, root = Dir.pwd, locales: nil) ⇒ Object
Appends a project application to the rack builder.
Class Method Details
.call(builder, root = Dir.pwd, locales: nil) ⇒ Object
Appends a project application to the rack builder.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/utopia/project.rb', line 30 def self.call(builder, root = Dir.pwd, locales: nil) if UTOPIA.production? # Handle exceptions in production with a error page and send an email notification: builder.use Utopia::Exceptions::Handler builder.use Utopia::Exceptions::Mailer else # We want to propate exceptions up when running tests: builder.use Rack::ShowExceptions unless UTOPIA.testing? end # We serve static files from the project root: builder.use Utopia::Static, root: root builder.use Utopia::Static, root: PUBLIC_ROOT builder.use Utopia::Redirection::Rewrite, { '/' => '/index' } builder.use Utopia::Redirection::DirectoryIndex builder.use Utopia::Redirection::Errors, { 404 => '/errors/file-not-found' } if locales builder.use Utopia::Localization, default_locale: locales.first, locales: locales end builder.use Utopia::Controller, root: PAGES_ROOT cache_root = File.("_gallery", root) builder.use Utopia::Content, root: PAGES_ROOT, namespaces: { # 'gallery' => Utopia::Gallery::Tags.new } builder.run lambda { |env| [404, {}, []] } end |