From 3196ceaba28be64d890e9544af218481ad54cf16 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Fri, 5 Jul 2013 13:21:01 +0200 Subject: explain how to extend application templates. [ci skip] --- guides/source/rails_application_templates.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'guides/source') diff --git a/guides/source/rails_application_templates.md b/guides/source/rails_application_templates.md index f8062a1f7c..0c70f379be 100644 --- a/guides/source/rails_application_templates.md +++ b/guides/source/rails_application_templates.md @@ -227,3 +227,22 @@ git :init git add: "." git commit: "-a -m 'Initial commit'" ``` + +Advanced Usage +-------------- + +The application template is evaluated in the context of a +`Rails::Generators::AppGenerator` instance. It uses the `apply` action +provided by +[Thor](https://github.com/erikhuda/thor/blob/master/lib/thor/actions.rb#L207). +This means you can extend and change the instance to match your needs. + +For example by overwriting the `source_paths` method to contain the +location of your template. Now methods like `copy_file` will accept +relative paths to your template's location. + +```ruby +def source_paths + [File.expand_path(File.dirname(__FILE__))] +end +``` -- cgit v1.2.3