From 6947592c772c67d4fdbaf397c6736eaa3be69363 Mon Sep 17 00:00:00 2001 From: Aaron Quint Date: Mon, 22 Dec 2008 00:34:57 -0500 Subject: [PATCH] Adding #environment to template runner - Allows adding of top level config to the Rails::Initializer block --- .../generators/applications/app/template_runner.rb | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) 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 c611364..59797c6 100644 --- a/railties/lib/rails_generator/generators/applications/app/template_runner.rb +++ b/railties/lib/rails_generator/generators/applications/app/template_runner.rb @@ -85,17 +85,25 @@ module Rails def gem(name, options = {}) puts "adding gem #{name}" - sentinel = 'Rails::Initializer.run do |config|' gems_code = "config.gem '#{name}'" if options.any? opts = options.inject([]) {|result, h| result << [":#{h[0]} => '#{h[1]}'"] }.join(", ") gems_code << ", #{opts}" end + + environment gems_code + end + + # Adds a line inside the Initializer block for config/environment.rb. Used by #gem + def environment(data = nil, &block_given) + sentinel = 'Rails::Initializer.run do |config|' + + data = block.call if !data && block_given? in_root do gsub_file 'config/environment.rb', /(#{Regexp.escape(sentinel)})/mi do |match| - "#{match}\n #{gems_code}" + "#{match}\n " << data end end end -- 1.6.0.2