Class: WebammToRails::Sources::Gemfile::Sets::Authentication

Inherits:
Object
  • Object
show all
Defined in:
lib/webamm_to_rails/sources/gemfile/sets/authentication.rb

Instance Method Summary collapse

Constructor Details

#initialize(waml_definition:) ⇒ Authentication

Returns a new instance of Authentication.



6
7
8
# File 'lib/webamm_to_rails/sources/gemfile/sets/authentication.rb', line 6

def initialize(waml_definition:)
  @waml_definition = waml_definition
end

Instance Method Details

#collectionObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/webamm_to_rails/sources/gemfile/sets/authentication.rb', line 10

def collection
  return [] if @waml_definition.authentication.blank?

  base_collection = [
    ::WebammToRails::Sources::Gemfile::Gem.new(name: "devise", version: "4.9.4", required: true, group: :default, platforms: [])
  ]

  return base_collection if @waml_definition.authentication.all? { |auth| auth.features.blank? }

  if @waml_definition.authentication.any? { |auth| auth.features.include?('invitations') }
    base_collection << ::WebammToRails::Sources::Gemfile::Gem.new(name: "devise_invitable", version: "2.0.9", required: true, group: :default, platforms: [])
  end

  if @waml_definition.authentication.any? { |auth| auth.features.include?('two_factor_authentication') }
    base_collection << ::WebammToRails::Sources::Gemfile::Gem.new(name: "devise-otp", version: "0.7.1", required: true, group: :default, platforms: [])
    base_collection << ::WebammToRails::Sources::Gemfile::Gem.new(name: "rqrcode", version: "2.2.0", required: true, group: :default, platforms: [])
  end

  base_collection
end