require_relative 'otp/presenter' require_relative 'invitable/presenter' require_relative 'standard/presenter' module WebammToRails module Sources module Views module Devise class Presenter def initialize(waml_definition:) @waml_definition = waml_definition end def collection return [] if @waml_definition.authentication.blank? views_collection = [] @waml_definition.authentication.each do |authentication| views_collection |= ::WebammToRails::Sources::Views::Devise::Standard::Presenter.new(table_name: authentication.table).collection if authentication.features.include?('invitations') views_collection |= ::WebammToRails::Sources::Views::Devise::Invitable::Presenter.new(table_name: authentication.table).collection end end if @waml_definition.authentication.any? { |authentication| authentication.features.include?('two_factor_authentication') } views_collection |= ::WebammToRails::Sources::Views::Devise::Otp::Presenter.new.collection end views_collection end end end end end end