aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHirofumi Wakasugi <baenej@gmail.com>2015-06-25 13:35:18 +0900
committerHirofumi Wakasugi <baenej@gmail.com>2015-06-25 15:25:14 +0900
commitce3d2fa05ad0b6b475d1dc90a93c5aa1722d604e (patch)
treeeae61fd4ac090eeb27131a891c217c4b56aa785c
parent204c45e4be6e031c19d45e11dff77ecfed380773 (diff)
downloadrails-ce3d2fa05ad0b6b475d1dc90a93c5aa1722d604e.tar.gz
rails-ce3d2fa05ad0b6b475d1dc90a93c5aa1722d604e.tar.bz2
rails-ce3d2fa05ad0b6b475d1dc90a93c5aa1722d604e.zip
modify add_source in application template to take a block for gem entries
-rw-r--r--railties/lib/rails/generators/actions.rb18
1 files changed, 16 insertions, 2 deletions
diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb
index 70a20801a0..560a553789 100644
--- a/railties/lib/rails/generators/actions.rb
+++ b/railties/lib/rails/generators/actions.rb
@@ -63,12 +63,26 @@ module Rails
# Add the given source to +Gemfile+
#
+ # If block is given, gem entries in block are wrapped into the source group.
+ #
# add_source "http://gems.github.com/"
- def add_source(source, options={})
+ #
+ # add_source "http://gems.github.com/" do
+ # gem "rspec-rails"
+ # end
+ def add_source(source, options={}, &block)
log :source, source
in_root do
- prepend_file "Gemfile", "source #{quote(source)}\n", verbose: false
+ if block
+ append_file "Gemfile", "source #{quote(source)} do", force: true
+ @in_group = true
+ instance_eval(&block)
+ @in_group = false
+ append_file "Gemfile", "\nend\n", force: true
+ else
+ prepend_file "Gemfile", "source #{quote(source)}\n", verbose: false
+ end
end
end