Sha256: 9809317437935c37d3896e62f25682f98d1695989d350532a7625a48e86507bd

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

require "dry/web/roda/application"
require_relative "container"

module <%= config[:camel_cased_app_name] %>
  class Web < Dry::Web::Roda::Application
    configure do |config|
      config.container = Container
      config.routes = "web/routes".freeze
    end

    opts[:root] = Pathname(__FILE__).join("../..").realpath.dirname

    use Rack::Session::Cookie, key: "<%= config[:underscored_project_name] %>.session", secret: self["settings"].session_secret

    plugin :csrf, raise: true
    plugin :dry_view
    plugin :error_handler
    plugin :flash
    plugin :multi_route

    route do |r|
      # Enable this after writing your first web/routes/ file
      # r.multi_route

      r.root do
        r.view "welcome"
      end
    end

    error do |e|
      self.class[:rack_monitor].instrument(:error, exception: e)
      raise e
    end

    # Request-specific options for dry-view context object
    def view_context_options
      {
        flash:        flash,
        csrf_token:   Rack::Csrf.token(request.env),
        csrf_metatag: Rack::Csrf.metatag(request.env),
        csrf_tag:     Rack::Csrf.tag(request.env),
      }
    end

    load_routes!
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dry-web-roda-0.11.0 lib/dry/web/roda/templates/flat_project/web.rb.tt
dry-web-roda-0.10.0 lib/dry/web/roda/templates/flat_project/web.rb.tt
dry-web-roda-0.9.1 lib/dry/web/roda/templates/flat_project/web.rb.tt
dry-web-roda-0.9.0 lib/dry/web/roda/templates/flat_project/web.rb.tt