openjdk.rb 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. module Docs
  2. class Openjdk < FileScraper
  3. self.name = 'OpenJDK'
  4. self.type = 'openjdk'
  5. self.root_path = 'overview-summary.html'
  6. self.links = {
  7. home: 'http://openjdk.java.net/',
  8. code: 'http://hg.openjdk.java.net/jdk8u'
  9. }
  10. self.release = '8'
  11. # Downloaded from packages.debian.org/sid/openjdk-8-doc
  12. # extracting subdirectoy /usr/share/doc/openjdk-8-jre-headless/api
  13. self.dir = '/Users/Thibaut/DevDocs/Docs/Java'
  14. html_filters.push 'openjdk/entries', 'openjdk/clean_html'
  15. html_filters.insert_after 'internal_urls', 'openjdk/clean_urls'
  16. options[:skip_patterns] = [
  17. /compact[123]-/,
  18. /package-frame\.html/,
  19. /package-tree\.html/,
  20. /package-use\.html/,
  21. /class-use\//,
  22. /doc-files\//]
  23. options[:attribution] = <<-HTML
  24. &copy; 1993&ndash;2017, Oracle and/or its affiliates. All rights reserved.<br>
  25. Use is subject to <a href="http://download.oracle.com/otndocs/jcp/java_se-8-mrel-spec/license.html">license terms</a>.<br>
  26. We are not endorsed by or affiliated with Oracle.
  27. HTML
  28. version 'Core' do
  29. options[:only_patterns] = [
  30. /\Ajava\/beans\//,
  31. /\Ajava\/io\//,
  32. /\Ajava\/lang\//,
  33. /\Ajava\/math\//,
  34. /\Ajava\/net\//,
  35. /\Ajava\/nio\//,
  36. /\Ajava\/security\//,
  37. /\Ajava\/text\//,
  38. /\Ajava\/time\//,
  39. /\Ajava\/util\//,
  40. /\Ajavax\/annotation\//,
  41. /\Ajavax\/crypto\//,
  42. /\Ajavax\/imageio\//,
  43. /\Ajavax\/lang\//,
  44. /\Ajavax\/management\//,
  45. /\Ajavax\/naming\//,
  46. /\Ajavax\/net\//,
  47. /\Ajavax\/print\//,
  48. /\Ajavax\/script\//,
  49. /\Ajavax\/security\//,
  50. /\Ajavax\/sound\//,
  51. /\Ajavax\/tools\//]
  52. end
  53. version 'GUI' do
  54. options[:only_patterns] = [
  55. /\Ajava\/awt\//,
  56. /\Ajavax\/swing\//]
  57. end
  58. version 'Web' do
  59. options[:only_patterns] = [
  60. /\Ajava\/applet\//,
  61. /\Ajava\/rmi\//,
  62. /\Ajava\/sql\//,
  63. /\Ajavax\/accessibility\//,
  64. /\Ajavax\/activation\//,
  65. /\Ajavax\/activity\//,
  66. /\Ajavax\/jws\//,
  67. /\Ajavax\/rmi\//,
  68. /\Ajavax\/sql\//,
  69. /\Ajavax\/transaction\//,
  70. /\Ajavax\/xml\//,
  71. /\Aorg\/ietf\//,
  72. /\Aorg\/omg\//,
  73. /\Aorg\/w3c\//,
  74. /\Aorg\/xml\//]
  75. end
  76. # Monkey patch to properly read HTML files encoded in ISO-8859-1
  77. def read_file(path)
  78. File.read(path).force_encoding('iso-8859-1').encode('utf-8') rescue nil
  79. end
  80. end
  81. end