Module: Utopia::Project
- Defined in:
- lib/utopia/project.rb,
lib/utopia/project/base.rb,
lib/utopia/project/guide.rb,
lib/utopia/project/version.rb
Defined Under Namespace
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.5.1"
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.
~~~ ruby # In your ‘config.ru` file:
require ‘utopia/setup’ UTOPIA ||= Utopia.setup
require ‘utopia/project’ Utopia::Project.call(self) ~~~
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/utopia/project.rb', line 55 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 |