lib/yard/rubygems/hook.rb in yard-0.9.8 vs lib/yard/rubygems/hook.rb in yard-0.9.9
- old
+ new
@@ -70,10 +70,18 @@
say "Done installing documentation for #{names} after #{duration} seconds"
end
##
+ # Pre uninstalls hook that removes documentation
+ #
+
+ def self.removal_hook(uninstaller)
+ new(uninstaller.spec).remove
+ end
+
+ ##
# Loads the YARD generator
def self.load_yard
return if @yard_version
@@ -158,9 +166,32 @@
raise Gem::FilePermissionError, @doc_dir unless File.writable?(@doc_dir)
else
FileUtils.mkdir_p @doc_dir
end
end
+
+ def uninstall_yard
+ if File.exist?(@yard_dir)
+ raise Gem::FilePermissionError, @yard_dir unless File.writable?(@yard_dir)
+ FileUtils.rm_rf @yard_dir
+ end
+ end
+
+ def uninstall_yri
+ if File.exist?(@yri_dir)
+ raise Gem::FilePermissionError, @yri_dir unless File.writable?(@yri_dir)
+ FileUtils.rm_rf @yri_dir
+ end
+ end
+
+ ##
+ # Removes YARD and yri data
+
+ def remove
+ uninstall_yri
+ uninstall_yard
+ end
end
end
Gem.done_installing(&YARD::RubygemsHook.method(:generation_hook))
+Gem.pre_uninstall(&YARD::RubygemsHook.method(:removal_hook))