From 2594581e9f5594b32918326be895b4d443ab3e9c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 7 Dec 2004 11:49:38 +0000 Subject: Added a better generator for scaffolding that actually creates the code, so it can be edited bit by bit. See "script/generate scaffold" [bitsweat]. Added a whole new approach to generators that used the shared "script/generate" command. Run with no-args to see help [bitsweat]. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@63 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/generators/mailer/templates/fixture.rhtml | 4 +++ railties/generators/mailer/templates/mailer.rb | 14 ++++++++ railties/generators/mailer/templates/unit_test.rb | 37 ++++++++++++++++++++++ railties/generators/mailer/templates/view.rhtml | 3 ++ 4 files changed, 58 insertions(+) create mode 100644 railties/generators/mailer/templates/fixture.rhtml create mode 100644 railties/generators/mailer/templates/mailer.rb create mode 100644 railties/generators/mailer/templates/unit_test.rb create mode 100644 railties/generators/mailer/templates/view.rhtml (limited to 'railties/generators/mailer/templates') diff --git a/railties/generators/mailer/templates/fixture.rhtml b/railties/generators/mailer/templates/fixture.rhtml new file mode 100644 index 0000000000..f315d430ed --- /dev/null +++ b/railties/generators/mailer/templates/fixture.rhtml @@ -0,0 +1,4 @@ +<%= class_name %>#<%= action %> + +Find me in test/fixtures/<%= file_name %>/<%= action %>. +I'm tested against the view in app/views/<%= file_name %>/<%= action %>. diff --git a/railties/generators/mailer/templates/mailer.rb b/railties/generators/mailer/templates/mailer.rb new file mode 100644 index 0000000000..6621ba9a01 --- /dev/null +++ b/railties/generators/mailer/templates/mailer.rb @@ -0,0 +1,14 @@ +require 'action_mailer' + +class <%= class_name %> < ActionMailer::Base +<% for action in actions -%> + + def <%= action %>(sent_on = Time.now) + @recipients = '' + @from = '' + @subject = '' + @body = {} + @sent_on = sent_on + end +<% end -%> +end diff --git a/railties/generators/mailer/templates/unit_test.rb b/railties/generators/mailer/templates/unit_test.rb new file mode 100644 index 0000000000..3bf460907f --- /dev/null +++ b/railties/generators/mailer/templates/unit_test.rb @@ -0,0 +1,37 @@ +require File.dirname(__FILE__) + '/../test_helper' +require '<%= file_name %>' + +class <%= class_name %>Test < Test::Unit::TestCase + FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures' + + def setup + ActionMailer::Base.delivery_method = :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @expected = TMail::Mail.new + @expected.to = 'test@localhost' + @expected.from = 'test@localhost' + end + +<% for action in actions -%> + def test_<%= action %> + @expected.subject = '<%= class_name %>#<%= action %> test mail' + @expected.body = read_fixture('<%= action %>') + @expected.date = Time.now + + created = nil + assert_nothing_raised { created = <%= class_name %>.create_<%= action %>(@expected.date) } + assert_not_nil created + assert_equal @expected.encoded, created.encoded + + assert_nothing_raised { <%= class_name %>.deliver_<%= action %>(@expected.date) } + assert_equal @expected.encoded, ActionMailer::Base.deliveries.first.encoded + end + +<% end -%> + private + def read_fixture(action) + IO.readlines("#{FIXTURES_PATH}/<%= file_name %>/#{action}") + end +end diff --git a/railties/generators/mailer/templates/view.rhtml b/railties/generators/mailer/templates/view.rhtml new file mode 100644 index 0000000000..b481906829 --- /dev/null +++ b/railties/generators/mailer/templates/view.rhtml @@ -0,0 +1,3 @@ +<%= class_name %>#<%= action %> + +Find me in app/views/<%= file_name %>/<%= action %>.rhtml -- cgit v1.2.3