aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authormasakazutakewaka <takewakamma@gmail.com>2019-02-19 00:56:39 +0900
committermasakazutakewaka <takewakamma@gmail.com>2019-07-19 22:07:48 -0700
commit9147b284b6fa66af6b2af493c2e7e88d449c2247 (patch)
treecbbc2f10f84d6069e7467783b4e190561fb11d6e /railties/lib
parent9fe5aa32a7c962e084117af94351061009cd350b (diff)
downloadrails-9147b284b6fa66af6b2af493c2e7e88d449c2247.tar.gz
rails-9147b284b6fa66af6b2af493c2e7e88d449c2247.tar.bz2
rails-9147b284b6fa66af6b2af493c2e7e88d449c2247.zip
Append a newline to the Gemfile if it doesn't end with a newline
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/rails/generators/actions.rb22
1 files changed, 14 insertions, 8 deletions
diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb
index 406a5b8fc7..c3a43d5398 100644
--- a/railties/lib/rails/generators/actions.rb
+++ b/railties/lib/rails/generators/actions.rb
@@ -40,8 +40,7 @@ module Rails
in_root do
str = "gem #{parts.join(", ")}"
str = indentation + str
- str = "\n" + str
- append_file "Gemfile", str, verbose: false
+ append_file_with_newline "Gemfile", str, verbose: false
end
end
@@ -58,9 +57,9 @@ module Rails
log :gemfile, "group #{str}"
in_root do
- append_file "Gemfile", "\ngroup #{str} do", force: true
+ append_file_with_newline "Gemfile", "group #{str} do", force: true
with_indentation(&block)
- append_file "Gemfile", "\nend\n", force: true
+ append_file_with_newline "Gemfile", "end", force: true
end
end
@@ -71,9 +70,9 @@ module Rails
log :github, "github #{str}"
in_root do
- append_file "Gemfile", "\n#{indentation}github #{str} do", force: true
+ append_file_with_newline "Gemfile", "#{indentation}github #{str} do", force: true
with_indentation(&block)
- append_file "Gemfile", "\n#{indentation}end", force: true
+ append_file_with_newline "Gemfile", "#{indentation}end", force: true
end
end
@@ -91,9 +90,9 @@ module Rails
in_root do
if block
- append_file "Gemfile", "\nsource #{quote(source)} do", force: true
+ append_file_with_newline "Gemfile", "source #{quote(source)} do", force: true
with_indentation(&block)
- append_file "Gemfile", "\nend\n", force: true
+ append_file_with_newline "Gemfile", "end", force: true
else
prepend_file "Gemfile", "source #{quote(source)}\n", verbose: false
end
@@ -344,6 +343,13 @@ module Rails
ensure
@indentation -= 1
end
+
+ # Append string to a file with a newline if necessary
+ def append_file_with_newline(path, str, options = {})
+ gsub_file path, /\n?\z/, options do |match|
+ match.end_with?("\n") ? "" : "\n#{str}\n"
+ end
+ end
end
end
end