Class: WebammToRails::Sources::Models::DeviseDefinition::Presenter

Inherits:
Object
  • Object
show all
Defined in:
lib/webamm_to_rails/sources/models/devise_definition/presenter.rb

Instance Method Summary collapse

Constructor Details

#initialize(table_name:, waml_definition:) ⇒ Presenter

Returns a new instance of Presenter.



6
7
8
9
# File 'lib/webamm_to_rails/sources/models/devise_definition/presenter.rb', line 6

def initialize(table_name:, waml_definition:)
  @table_name = table_name
  @waml_definition = waml_definition
end

Instance Method Details

#renderObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/webamm_to_rails/sources/models/devise_definition/presenter.rb', line 11

def render
  return unless authenticated?

  base_strategies = [
    'database_authenticatable', 'validatable', 'rememberable', 'recoverable', 'trackable'
  ]

  if auth_features.include?('allow_sign_up')
    base_strategies << 'registerable'
    base_strategies << 'confirmable'
  end

  if auth_features.include?('invitations')
    base_strategies << 'invitable'
  end

  if auth_features.include?('two_factor_authentication')
    base_strategies << 'otp_authenticatable'
  end

  "devise #{base_strategies.map { |strategy| ":#{strategy}" }.join(', ')}"
end