file (RubiGen::Commands::Destroy)

    # File lib/rubigen/commands.rb, line 496
          def file(relative_source, relative_destination, file_options = {})
            destination = destination_path(relative_destination)
            if File.exist?(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
                elsif options[:git]
                  if options[:git][:new][relative_destination]
                    # file has been added, but not committed
                    system("git reset HEAD #{relative_destination}")
                    FileUtils.rm(destination)
                  elsif options[:git][:modified][relative_destination]
                    # file is committed and modified
                    system("git rm -f #{relative_destination}")
                  else
                    # If the directory is not in the status list, it
                    # has no modifications so we can simply remove it
                    system("git rm #{relative_destination}")
                  end
                else
                  FileUtils.rm(destination)
                end
              end
            else
              logger.missing relative_destination
              return
            end
          end