Class: Rodauth::Rails::App

Inherits:
Roda
  • Object
show all
Defined in:
lib/rodauth/rails/app.rb

Overview

The superclass for creating a Rodauth middleware.

Defined Under Namespace

Modules: RequestMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configure(*args, **options, &block) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rodauth/rails/app.rb', line 12

def self.configure(*args, **options, &block)
  auth_class = args.shift if args[0].is_a?(Class)
  auth_class ||= Class.new(Rodauth::Rails::Auth)
  name = args.shift if args[0].is_a?(Symbol)

  fail ArgumentError, "need to pass optional Rodauth::Auth subclass and optional configuration name" if args.any?

  # we'll render Rodauth's built-in view templates within Rails layouts
  plugin :render, layout: false unless options[:render] == false

  plugin :rodauth, auth_class: auth_class, name: name, csrf: false, flash: false, json: true, **options, &block

  # we need to do it after request methods from rodauth have been included
  self::RodaRequest.include RequestMethods
end

.rodauth!(name) ⇒ Object



54
55
56
# File 'lib/rodauth/rails/app.rb', line 54

def self.rodauth!(name)
  rodauth(name) or fail Rodauth::Rails::Error, "unknown rodauth configuration: #{name.inspect}"
end

Instance Method Details

#flashObject



38
39
40
# File 'lib/rodauth/rails/app.rb', line 38

def flash
  rails_request.flash
end

#rails_cookiesObject



46
47
48
# File 'lib/rodauth/rails/app.rb', line 46

def rails_cookies
  rails_request.cookie_jar
end

#rails_requestObject



50
51
52
# File 'lib/rodauth/rails/app.rb', line 50

def rails_request
  ActionDispatch::Request.new(env)
end

#rails_routesObject



42
43
44
# File 'lib/rodauth/rails/app.rb', line 42

def rails_routes
  ::Rails.application.routes.url_helpers
end