aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2008-12-07 03:40:23 +0100
committerPratik Naik <pratiknaik@gmail.com>2008-12-07 03:40:23 +0100
commitf7f113610e7cdca8ef03e206f2cbeb8400cdfefa (patch)
tree8d8a75ebb9e096b15dc759ff6e94856f70854203 /railties
parent2dc5d12c91d0c717f7bac6b544193e810ce4917a (diff)
downloadrails-f7f113610e7cdca8ef03e206f2cbeb8400cdfefa.tar.gz
rails-f7f113610e7cdca8ef03e206f2cbeb8400cdfefa.tar.bz2
rails-f7f113610e7cdca8ef03e206f2cbeb8400cdfefa.zip
Add a rake task to apply a template to an existing application.
Example : rake rails:template LOCATION=~/template.rb
Diffstat (limited to 'railties')
-rw-r--r--railties/CHANGELOG2
-rw-r--r--railties/lib/rails_generator/generators/applications/app/app_generator.rb2
-rw-r--r--railties/lib/rails_generator/generators/applications/app/template_runner.rb4
-rw-r--r--railties/lib/tasks/framework.rake6
4 files changed, 11 insertions, 3 deletions
diff --git a/railties/CHANGELOG b/railties/CHANGELOG
index ca49c5d1c7..9ce7b6349c 100644
--- a/railties/CHANGELOG
+++ b/railties/CHANGELOG
@@ -1,5 +1,7 @@
*2.3.0 [Edge]*
+* Add a rake task to apply a template to an existing application : rake rails:template LOCATION=~/template.rb [Pratik]
+
* Add "-m/--template" option to Rails generator to apply a template to the generated application. [Jeremy McAnally]
This has been extracted from rg - http://github.com/jeremymcanally/rg
diff --git a/railties/lib/rails_generator/generators/applications/app/app_generator.rb b/railties/lib/rails_generator/generators/applications/app/app_generator.rb
index 4a191578cf..795a0d7653 100644
--- a/railties/lib/rails_generator/generators/applications/app/app_generator.rb
+++ b/railties/lib/rails_generator/generators/applications/app/app_generator.rb
@@ -40,7 +40,7 @@ class AppGenerator < Rails::Generator::Base
def after_generate
if options[:template]
- Rails::TemplateRunner.new(@destination_root, options[:template])
+ Rails::TemplateRunner.new(options[:template], @destination_root)
end
end
diff --git a/railties/lib/rails_generator/generators/applications/app/template_runner.rb b/railties/lib/rails_generator/generators/applications/app/template_runner.rb
index 6c7c9deea3..00079daffd 100644
--- a/railties/lib/rails_generator/generators/applications/app/template_runner.rb
+++ b/railties/lib/rails_generator/generators/applications/app/template_runner.rb
@@ -9,8 +9,8 @@ module Rails
class TemplateRunner
attr_reader :root
- def initialize(root, template) # :nodoc:
- @root = Dir.pwd + "/" + root
+ def initialize(template, root = '') # :nodoc:
+ @root = File.join(Dir.pwd, root)
puts "applying template: #{template}"
diff --git a/railties/lib/tasks/framework.rake b/railties/lib/tasks/framework.rake
index d639214ffe..191c9361ff 100644
--- a/railties/lib/tasks/framework.rake
+++ b/railties/lib/tasks/framework.rake
@@ -80,6 +80,12 @@ namespace :rails do
desc "Update both configs, scripts and public/javascripts from Rails"
task :update => [ "update:scripts", "update:javascripts", "update:configs", "update:application_controller" ]
+ desc "Applies the template supplied by LOCATION=/path/to/template"
+ task :template do
+ require 'rails_generator/generators/applications/app/template_runner'
+ Rails::TemplateRunner.new(ENV["LOCATION"])
+ end
+
namespace :update do
desc "Add new scripts to the application script/ directory"
task :scripts do