From 9fffdc5cdb80b1824473a6d7ae1fedf9e74aa748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 18 Jan 2010 13:44:32 +0100 Subject: Generators load path now will be Ruby load path. If you want to use rspec:install generator, you need generators/rspec/install_generator in your load path. --- railties/lib/generators/rails/mailer/USAGE | 15 +++++++++++++++ railties/lib/generators/rails/mailer/mailer_generator.rb | 14 ++++++++++++++ railties/lib/generators/rails/mailer/templates/mailer.rb | 14 ++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 railties/lib/generators/rails/mailer/USAGE create mode 100644 railties/lib/generators/rails/mailer/mailer_generator.rb create mode 100644 railties/lib/generators/rails/mailer/templates/mailer.rb (limited to 'railties/lib/generators/rails/mailer') 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..90e0b712d6 --- /dev/null +++ b/railties/lib/generators/rails/mailer/templates/mailer.rb @@ -0,0 +1,14 @@ +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 -- cgit v1.2.3