This method is only available on newer versions.
The first available version (v2_6_3) is shown here.
file_collision(destination)
public
Deals with file collision and returns true if the file should be
overwritten and false otherwise. If a block is given, it uses the block
response as the content for the diff.
an optional block that returns the value to be used in diff
# File lib/bundler/vendor/thor/lib/thor/shell/basic.rb, line 244
def file_collision(destination)
return true if @always_force
options = block_given? ? "[Ynaqdh]" : "[Ynaqh]"
loop do
answer = ask(
%[Overwrite #{destination}? (enter "h" for help) #{options}],
:add_to_history => false
)
case answer
when nil
say ""
return true
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