aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/generators/rails
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-06-25 12:57:58 +0200
committerJosé Valim <jose.valim@gmail.com>2009-06-25 12:57:58 +0200
commit6e6c0117b30226f031771acb9715318987067f51 (patch)
tree0561577a33b94e0245ee88ef56988eb8b638b4a1 /railties/lib/generators/rails
parented33c29a4e2a07c2a738ec13775c5cc0d7867b50 (diff)
downloadrails-6e6c0117b30226f031771acb9715318987067f51.tar.gz
rails-6e6c0117b30226f031771acb9715318987067f51.tar.bz2
rails-6e6c0117b30226f031771acb9715318987067f51.zip
Added Mailer generaator template engine and test framework agnostic.
Diffstat (limited to 'railties/lib/generators/rails')
-rw-r--r--railties/lib/generators/rails/mailer/USAGE15
-rw-r--r--railties/lib/generators/rails/mailer/mailer_generator.rb18
-rw-r--r--railties/lib/generators/rails/mailer/templates/mailer.rb15
3 files changed, 48 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..638934d38d
--- /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, view templates in
+ app/views/mailer_name and then invokes your test framework.
+
+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..4c77df89ab
--- /dev/null
+++ b/railties/lib/generators/rails/mailer/mailer_generator.rb
@@ -0,0 +1,18 @@
+module Rails
+ module Generators
+ class MailerGenerator < NamedBase
+ argument :actions, :type => :array, :default => []
+
+ def check_class_collision
+ class_collisions class_name
+ end
+
+ def create_mailer_file
+ template "mailer.rb", File.join('app/models', class_path, "#{file_name}.rb")
+ end
+
+ add_and_invoke_template_engine_option!
+ add_and_invoke_test_framework_option!
+ 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