added mailviewsgenerator

now mail generator can copy markerb or erb mail template views
This commit is contained in:
Bounmy Stephane
2011-09-13 00:19:48 -07:00
parent 263e903046
commit 10451e9e38
8 changed files with 33 additions and 10 deletions

View File

@@ -23,8 +23,8 @@ module Devise
protected
def view_directory(name)
directory name.to_s, "#{target_path}/#{name}"
def view_directory(name, _target_path = nil)
directory name.to_s, _target_path || "#{target_path}/#{name}"
end
def target_path
@@ -39,7 +39,6 @@ module Devise
# Override copy_views to just copy mailer and shared.
def copy_views
view_directory :mailer
view_directory :shared
end
end
@@ -56,6 +55,21 @@ module Devise
desc "Copies simple form enabled views to your application."
end
class MailViewsGenerator < Rails::Generators::Base #:nodoc:
include ViewPathTemplates
source_root File.expand_path("../../../../app/views/devise/mailer", __FILE__)
desc "Copies Devise mail views to your application."
class_option :mail_template_engine, :default => :erb, :aliases => "-m"
def copy_views
view_directory options[:mail_template_engine], target_path
end
def target_path
"app/views/#{scope || :devise}/mailer"
end
end
class ViewsGenerator < Rails::Generators::Base
desc "Copies Devise views to your application."
@@ -63,7 +77,7 @@ module Devise
:desc => "The scope to copy views to"
invoke SharedViewsGenerator
invoke MailViewsGenerator
hook_for :form_builder, :aliases => "-b",
:desc => "Form builder to be used",
:default => defined?(SimpleForm) ? "simple_form_for" : "form_for"