Undo the actions performed by a generator. Rewind the action manifest and attempt to completely erase the results of each action.
Source: show
# File rails/railties/lib/rails_generator/commands.rb, line 472 def complex_template(*args) # nothing should be done here end
Remove each directory in the given path from right to left. Remove each subdirectory if it exists and is a directory.
Source: show
# File rails/railties/lib/rails_generator/commands.rb, line 438 def directory(relative_path) parts = relative_path.split('/') until parts.empty? partial = File.join(parts) path = destination_path(partial) if File.exists?(path) if Dir[File.join(path, '*')].empty? logger.rmdir partial unless options[:pretend] if options[:svn] # If the directory has been marked to be added # but has not yet been checked in, revert and delete if options[:svn][relative_path] system("svn revert #{path}") FileUtils.rmdir(path) else # If the directory is not in the status list, it # has no modifications so we can simply remove it system("svn rm #{path}") end else FileUtils.rmdir(path) end end else logger.notempty partial end else logger.missing partial end parts.pop end end
Remove a file if it exists and is a file.
Source: show
# File rails/railties/lib/rails_generator/commands.rb, line 406 def file(relative_source, relative_destination, file_options = {}) destination = destination_path(relative_destination) if File.exists?(destination) logger.rm relative_destination unless options[:pretend] if options[:svn] # If the file has been marked to be added # but has not yet been checked in, revert and delete if options[:svn][relative_destination] system("svn revert #{destination}") FileUtils.rm(destination) else # If the directory is not in the status list, it # has no modifications so we can simply remove it system("svn rm #{destination}") end else FileUtils.rm(destination) end end else logger.missing relative_destination return end end
When deleting a migration, it knows to delete every file named “[0-9]*_#{file_name}”.
Source: show
# File rails/railties/lib/rails_generator/commands.rb, line 477 def migration_template(relative_source, relative_destination, template_options = {}) migration_directory relative_destination migration_file_name = template_options[:migration_file_name] || file_name unless migration_exists?(migration_file_name) puts "There is no migration named #{migration_file_name}" return end existing_migrations(migration_file_name).each do |file_path| file(relative_source, file_path, template_options) end end
Source: show
# File rails/railties/lib/rails_generator/commands.rb, line 492 def route_resources(*resources) resource_list = resources.map { |r| r.to_sym.inspect }.join(', ') look_for = "\n map.resources #{resource_list}\n" logger.route "map.resources #{resource_list}" gsub_file 'config/routes.rb', %r(#{look_for})/i, '' end