From fc12d224ae92d3f200f1d60e0a025dfa3fc00f82 Mon Sep 17 00:00:00 2001 From: Abhay Nikam Date: Tue, 17 Dec 2019 00:52:24 +0530 Subject: [PATCH] Add ActionMailbox install generator Forward ActionMailbox install to install generator and hide the ActionMailbox install generator from generator list Updated the Action Mailbox install task description --- .../install/install_generator.rb | 28 +++++++++++++++++++ .../lib/rails/generators/installer.rb | 10 ------- actionmailbox/lib/tasks/install.rake | 20 ++----------- railties/lib/rails/generators.rb | 3 +- 4 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 actionmailbox/lib/generators/action_mailbox/install/install_generator.rb delete mode 100644 actionmailbox/lib/rails/generators/installer.rb diff --git a/actionmailbox/lib/generators/action_mailbox/install/install_generator.rb b/actionmailbox/lib/generators/action_mailbox/install/install_generator.rb new file mode 100644 index 0000000000..e919b3355a --- /dev/null +++ b/actionmailbox/lib/generators/action_mailbox/install/install_generator.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +require "rails/generators/mailbox/mailbox_generator" + +module ActionMailbox + module Generators + class InstallGenerator < ::Rails::Generators::Base + source_root Rails::Generators::MailboxGenerator.source_root + + def create_action_mailbox_files + say "Copying application_mailbox.rb to app/mailboxes", :green + template "application_mailbox.rb", "app/mailboxes/application_mailbox.rb" + end + + def add_action_mailbox_production_environment_config + environment <<~end_of_config, env: "production" + # Prepare the ingress controller used to receive mail + # config.action_mailbox.ingress = :relay + + end_of_config + end + + def create_migrations + rails_command "railties:install:migrations FROM=active_storage,action_mailbox" + end + end + end +end diff --git a/actionmailbox/lib/rails/generators/installer.rb b/actionmailbox/lib/rails/generators/installer.rb deleted file mode 100644 index 76198aaf35..0000000000 --- a/actionmailbox/lib/rails/generators/installer.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -say "Copying application_mailbox.rb to app/mailboxes" -copy_file "#{__dir__}/mailbox/templates/application_mailbox.rb", "app/mailboxes/application_mailbox.rb" - -environment <<~end_of_config, env: "production" - # Prepare the ingress controller used to receive mail - # config.action_mailbox.ingress = :relay - -end_of_config diff --git a/actionmailbox/lib/tasks/install.rake b/actionmailbox/lib/tasks/install.rake index 0885e2d6a5..fe6ceb6a19 100644 --- a/actionmailbox/lib/tasks/install.rake +++ b/actionmailbox/lib/tasks/install.rake @@ -1,20 +1,6 @@ # frozen_string_literal: true -namespace :action_mailbox do - # Prevent migration installation task from showing up twice. - Rake::Task["install:migrations"].clear_comments - - desc "Copy over the migration" - task install: %w[ environment run_installer copy_migrations ] - - task :run_installer do - installer_template = File.expand_path("../rails/generators/installer.rb", __dir__) - system "#{RbConfig.ruby} ./bin/rails app:template LOCATION=#{installer_template}" - end - - task :copy_migrations do - Rake::Task["active_storage:install:migrations"].invoke - Rake::Task["railties:install:migrations"].reenable # Otherwise you can't run 2 migration copy tasks in one invocation - Rake::Task["action_mailbox:install:migrations"].invoke - end +desc "Installs Action Mailbox and its dependencies" +task "action_mailbox:install" do + Rails::Command.invoke :generate, ["action_mailbox:install"] end diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb index 79f4df6fea..fbf14105ab 100644 --- a/railties/lib/rails/generators.rb +++ b/railties/lib/rails/generators.rb @@ -161,7 +161,8 @@ module Rails "#{css}:assets", "css:assets", "css:scaffold", - "action_text:install" + "action_text:install", + "action_mailbox:install" ] end end