aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/generators/rails/mailer
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/generators/rails/mailer')
-rw-r--r--railties/lib/generators/rails/mailer/USAGE15
-rw-r--r--railties/lib/generators/rails/mailer/mailer_generator.rb14
-rw-r--r--railties/lib/generators/rails/mailer/templates/mailer.rb15
3 files changed, 44 insertions, 0 deletions
diff --git a/railties/lib/generators/rails/mailer/USAGE b/railties/lib/generators/rails/mailer/USAGE
new file mode 100644
index 0000000000..c56095b2c8
--- /dev/null
+++ b/railties/lib/generators/rails/mailer/USAGE
@@ -0,0 +1,15 @@
+Description:
+ Stubs out a new mailer and its views. Pass the mailer name, either
+ CamelCased or under_scored, and an optional list of emails as arguments.
+
+ This generates a mailer class in app/models and invokes your template
+ engine and test framework generators.
+
+Example:
+ `./script/generate mailer Notifications signup forgot_password invoice`
+
+ creates a Notifications mailer class, views, test, and fixtures:
+ Mailer: app/models/notifications.rb
+ Views: app/views/notifications/signup.erb [...]
+ Test: test/unit/test/unit/notifications_test.rb
+ Fixtures: test/fixtures/notifications/signup [...]
diff --git a/railties/lib/generators/rails/mailer/mailer_generator.rb b/railties/lib/generators/rails/mailer/mailer_generator.rb
new file mode 100644
index 0000000000..33f1665b83
--- /dev/null
+++ b/railties/lib/generators/rails/mailer/mailer_generator.rb
@@ -0,0 +1,14 @@
+module Rails
+ module Generators
+ class MailerGenerator < NamedBase
+ argument :actions, :type => :array, :default => [], :banner => "method method"
+ check_class_collision
+
+ def create_mailer_file
+ template "mailer.rb", File.join('app/models', class_path, "#{file_name}.rb")
+ end
+
+ hook_for :template_engine, :test_framework
+ end
+ end
+end
diff --git a/railties/lib/generators/rails/mailer/templates/mailer.rb b/railties/lib/generators/rails/mailer/templates/mailer.rb
new file mode 100644
index 0000000000..ce15ae9de9
--- /dev/null
+++ b/railties/lib/generators/rails/mailer/templates/mailer.rb
@@ -0,0 +1,15 @@
+class <%= class_name %> < ActionMailer::Base
+
+<% for action in actions -%>
+
+ def <%= action %>(sent_at = Time.now)
+ subject '<%= class_name %>#<%= action %>'
+ recipients ''
+ from ''
+ sent_on sent_at
+
+ body :greeting => 'Hi,'
+ end
+<% end -%>
+
+end