# File lib/thor/shell/basic.rb, line 221
      def file_collision(destination)
        return true if @always_force
        options = block_given? ? "[Ynaqdh]" : "[Ynaqh]"

        while true
          answer = ask %[Overwrite #{destination}? (enter "h" for help) #{options}]

          case answer
          when is?(:yes), is?(:force), ""
            return true
          when is?(:no), is?(:skip)
            return false
          when is?(:always)
            return @always_force = true
          when is?(:quit)
            say 'Aborting...'
            raise SystemExit
          when is?(:diff)
            show_diff(destination, yield) if block_given?
            say 'Retrying...'
          else
            say file_collision_help
          end
        end
      end