Class: Pu::Rodauth::AccountGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Pu::Rodauth::AccountGenerator
- Defined in:
- lib/generators/pu/rodauth/account_generator.rb
Instance Method Summary collapse
- #configure_rodauth_plugin ⇒ Object
- #configure_rodauth_plugin_load_memory ⇒ Object
- #configure_rodauth_plugin_load_route ⇒ Object
- #create_account_model ⇒ Object
- #create_mailer ⇒ Object
- #create_rodauth_app ⇒ Object
- #create_rodauth_controller ⇒ Object
- #generate_rodauth_migration ⇒ Object
- #install_dependencies ⇒ Object
Methods included from Concerns::FeatureSelector
Methods included from Concerns::AccountSelector
Instance Method Details
#configure_rodauth_plugin ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 34 def configure_rodauth_plugin in_root do plugin_name = indent( "configure ::#{account_path.classify}RodauthPlugin#{", :#{table_prefix}" unless primary?}\n", 2 ) gsub_file "app/rodauth/rodauth_app.rb", /.*# configure RodauthMain\n/, "" insert_into_file "app/rodauth/rodauth_app.rb", plugin_name, after: "# auth configuration\n" end end |
#configure_rodauth_plugin_load_memory ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 52 def configure_rodauth_plugin_load_memory in_root do plugin_config = indent( "rodauth#{"(:#{table_prefix})" unless primary?}.load_memory # autologin remembered #{table}\n", 4 ) gsub_file "app/rodauth/rodauth_app.rb", /.*# rodauth\.load_memory.*\n/, "" if remember? insert_into_file "app/rodauth/rodauth_app.rb", plugin_config, after: "# plugin route configuration\n" else gsub_file "app/rodauth/rodauth_app.rb", plugin_config, "" in_root do unless File.read("app/rodauth/rodauth_app.rb").match?(/.*\.load_memory # autologin/) insert_into_file "app/rodauth/rodauth_app.rb", indent("# rodauth.load_memory # autologin remembered users\n", 4), after: "# plugin route configuration\n" end end end end end |
#configure_rodauth_plugin_load_route ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 44 def configure_rodauth_plugin_load_route in_root do route_config = indent("r.rodauth#{"(:#{table_prefix})" unless primary?}\n", 4) gsub_file "app/rodauth/rodauth_app.rb", /.*# r\.rodauth\n/, "" insert_into_file "app/rodauth/rodauth_app.rb", route_config, after: "# auth route configuration\n" end end |
#create_account_model ⇒ Object
88 89 90 91 92 93 94 95 96 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 88 def create_account_model return unless base? template "app/models/account.rb", "app/models/#{account_path}.rb" invoke "pu:res:scaffold", [table, "email:string", "status:integer"], dest: "main_app", model: false, force: true, skip: [:skip] end |
#create_mailer ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 98 def create_mailer return unless mails? template "app/mailers/rodauth_mailer.rb", "app/mailers/rodauth_mailer.rb" template "app/mailers/account_mailer.rb", "app/mailers/rodauth/#{account_path}_mailer.rb" directory "app/views/rodauth_mailer", "app/views/rodauth/#{account_path}_mailer" end |
#create_rodauth_app ⇒ Object
30 31 32 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 30 def create_rodauth_app template "app/rodauth/account_rodauth_plugin.rb", "app/rodauth/#{account_path}_rodauth_plugin.rb" end |
#create_rodauth_controller ⇒ Object
73 74 75 76 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 73 def create_rodauth_controller dest = "app/controllers/rodauth/#{account_path}_controller.rb" template "app/controllers/plugin_controller.rb", dest end |
#generate_rodauth_migration ⇒ Object
78 79 80 81 82 83 84 85 86 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 78 def generate_rodauth_migration return if selected_migration_features.empty? invoke "pu:rodauth:migration", [table], features: selected_migration_features, name: kitchen_sink? ? "rodauth_kitchen_sink" : nil, migration_name: [:migration_name], force: [:force], skip: [:skip] end |
#install_dependencies ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/generators/pu/rodauth/account_generator.rb', line 21 def install_dependencies Bundler.with_unbundled_env do run "bundle add jwt" if jwt? || jwt_refresh? run "bundle add rotp" if otp? run "bundle add rqrcode" if otp? run "bundle add webauthn" if webauthn? || webauthn_autofill? end end |