Module: BetterAuth::Sinatra

Defined in:
lib/better_auth/sinatra.rb,
lib/better_auth/sinatra/helpers.rb,
lib/better_auth/sinatra/version.rb,
lib/better_auth/sinatra/extension.rb,
lib/better_auth/sinatra/migration.rb,
lib/better_auth/sinatra/mounted_app.rb,
lib/better_auth/sinatra/configuration.rb

Defined Under Namespace

Modules: Extension, Helpers, Migration Classes: Configuration, MountedApp

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.auth(overrides = nil) ⇒ Object



35
36
37
38
39
40
# File 'lib/better_auth/sinatra.rb', line 35

def auth(overrides = nil)
  options = configuration.to_auth_options
  return @auth ||= BetterAuth.auth(options) if overrides.nil? || overrides.empty?

  BetterAuth.auth(options.merge(overrides))
end

.configurationObject



20
21
22
# File 'lib/better_auth/sinatra.rb', line 20

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



24
25
26
27
28
# File 'lib/better_auth/sinatra.rb', line 24

def configure
  yield configuration
  @auth = nil
  self
end

.default_config_templateObject



52
53
54
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
# File 'lib/better_auth/sinatra.rb', line 52

def default_config_template
  <<~RUBY
    # frozen_string_literal: true

    require "better_auth/sinatra"

    BetterAuth::Sinatra.configure do |config|
      config.secret = ENV.fetch("BETTER_AUTH_SECRET", "change-me-sinatra-secret-12345678901234567890")
      config.base_url = ENV["BETTER_AUTH_URL"]
      config.base_path = "/api/auth"

      config.database = ->(options) do
        case ENV.fetch("BETTER_AUTH_DATABASE_DIALECT", "postgres")
        when "postgres", "postgresql"
          BetterAuth::Adapters::Postgres.new(options, url: ENV.fetch("DATABASE_URL"))
        when "mysql"
          BetterAuth::Adapters::MySQL.new(options, url: ENV.fetch("DATABASE_URL"))
        when "sqlite", "sqlite3"
          BetterAuth::Adapters::SQLite.new(options, path: ENV.fetch("DATABASE_URL", "db/better_auth.sqlite3"))
        else
          raise "Unsupported BETTER_AUTH_DATABASE_DIALECT for better_auth-sinatra"
        end
      end

      config.email_and_password = {
        enabled: true
      }

      config.plugins = []
    end
  RUBY
end

.load_app_config(path = "config/better_auth.rb") ⇒ Object



48
49
50
# File 'lib/better_auth/sinatra.rb', line 48

def load_app_config(path = "config/better_auth.rb")
  load path if File.exist?(path)
end

.migration_configurationObject



42
43
44
45
46
# File 'lib/better_auth/sinatra.rb', line 42

def migration_configuration
  options = configuration.to_auth_options
  options[:secret] ||= BetterAuth::Configuration::DEFAULT_SECRET
  BetterAuth::Configuration.new(options)
end

.registered(app) ⇒ Object



16
17
18
# File 'lib/better_auth/sinatra.rb', line 16

def registered(app)
  Extension.registered(app)
end

.reset!Object



30
31
32
33
# File 'lib/better_auth/sinatra.rb', line 30

def reset!
  @configuration = nil
  @auth = nil
end