aboutsummaryrefslogtreecommitdiffstats
path: root/lib/generators/rails/mailbox_generator.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2018-12-15 09:20:21 -0800
committerGitHub <noreply@github.com>2018-12-15 09:20:21 -0800
commit8ab794280d985ed6fe5fe0029b0ab2d35d13fff1 (patch)
tree17a4e88934c3f9dee74ef9ce880acb3d8869645e /lib/generators/rails/mailbox_generator.rb
parent749e923539075eef407e5d9b8c7c151a3b3171d4 (diff)
parent8415a6c5cf883f7ce6fe93b80ec99072fb04be83 (diff)
downloadrails-8ab794280d985ed6fe5fe0029b0ab2d35d13fff1.tar.gz
rails-8ab794280d985ed6fe5fe0029b0ab2d35d13fff1.tar.bz2
rails-8ab794280d985ed6fe5fe0029b0ab2d35d13fff1.zip
Merge pull request #9 from dixpac/dix/fix_generators
Fix Rails generators
Diffstat (limited to 'lib/generators/rails/mailbox_generator.rb')
-rw-r--r--lib/generators/rails/mailbox_generator.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/generators/rails/mailbox_generator.rb b/lib/generators/rails/mailbox_generator.rb
new file mode 100644
index 0000000000..7b43173480
--- /dev/null
+++ b/lib/generators/rails/mailbox_generator.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+module Rails
+ module Generators
+ class MailboxGenerator < NamedBase
+ source_root File.expand_path("templates", __dir__)
+
+ argument :actions, type: :array, default: [:process], banner: "method method"
+
+ check_class_collision suffix: "Mailbox"
+
+ def create_mailbox_file
+ template "mailbox.rb", File.join("app/mailboxes", class_path, "#{file_name}_mailbox.rb")
+
+ in_root do
+ if behavior == :invoke && !File.exist?(application_mailbox_file_name)
+ template "application_mailbox.rb", application_mailbox_file_name
+ end
+ end
+ end
+
+ hook_for :test_framework
+
+ private
+ def file_name # :doc:
+ @_file_name ||= super.sub(/_mailbox\z/i, "")
+ end
+
+ def application_mailbox_file_name
+ "app/mailboxes/application_mailbox.rb"
+ end
+ end
+ end
+end