mirror of
https://github.com/github/rails.git
synced 2026-01-26 06:48:59 -05:00
Make the generator skip a file if it already exists and is identical to the new file.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2493 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* Make the generator skip a file if it already exists and is identical to the new file.
|
||||
|
||||
* Add experimental plugin support #2335
|
||||
|
||||
* Made Rakefile aware of new .js files in script.aculo.us [Thomas Fuchs]
|
||||
|
||||
@@ -146,11 +146,13 @@ module Rails
|
||||
# the user what to do.
|
||||
def file(relative_source, relative_destination, file_options = {})
|
||||
# Determine full paths for source and destination files.
|
||||
source = source_path(relative_source)
|
||||
destination = destination_path(relative_destination)
|
||||
source = source_path(relative_source)
|
||||
destination = destination_path(relative_destination)
|
||||
destination_exists = File.exists?(destination)
|
||||
return logger.identical(relative_destination) if destination_exists and identical?(source, destination)
|
||||
|
||||
# Check for and resolve file collisions.
|
||||
if File.exists?(destination)
|
||||
if destination_exists
|
||||
|
||||
# Make a choice whether to overwrite the file. :force and
|
||||
# :skip already have their mind made up, but give :ask a shot.
|
||||
@@ -207,6 +209,11 @@ module Rails
|
||||
system("svn add #{destination}") if options[:svn]
|
||||
end
|
||||
|
||||
# Checks if the source and the destination file are identical.
|
||||
def identical?(source, destination)
|
||||
IO.read(source) == IO.read(destination)
|
||||
end
|
||||
|
||||
# Generate a file for a Rails application using an ERuby template.
|
||||
# Looks up and evalutes a template by name and writes the result.
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user