perl.rb 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. module Docs
  2. class Perl < UrlScraper
  3. self.name = 'Perl'
  4. self.type = 'perl'
  5. self.initial_paths = ['modules.html', 'perlutil.html', 'perl.html']
  6. self.links = {
  7. home: 'https://www.perl.org/'
  8. }
  9. html_filters.push 'perl/pre_clean_html', 'perl/entries', 'perl/clean_html', 'title'
  10. options[:container] = '#perldocdiv'
  11. options[:skip] = %w(
  12. perlbook perlcommunity perlexperiment perlartistic perlgpl perlhist
  13. perlcn perljp perlko perltw
  14. perlboot perlbot perlrepository perltodo perltooc perltoot )
  15. options[:skip_patterns] = [/\Afunctions/, /\Avariables/, /\.pdf/, /delta/]
  16. options[:attribution] = <<-HTML
  17. &copy; 1993&ndash;2021 Larry Wall and others<br>
  18. Licensed under the GNU General Public License version 1 or later, or the Artistic License.<br>
  19. The Perl logo is a trademark of the Perl Foundation.
  20. HTML
  21. version '5.34' do
  22. self.release = '5.34.0'
  23. self.base_url = "https://perldoc.perl.org/#{self.release}/"
  24. end
  25. version '5.32' do
  26. self.release = '5.32.0'
  27. self.base_url = "https://perldoc.perl.org/#{self.release}/"
  28. end
  29. version '5.30' do
  30. self.release = '5.30.3'
  31. self.base_url = "https://perldoc.perl.org/#{self.release}/"
  32. end
  33. version '5.28' do
  34. self.release = '5.28.3'
  35. self.base_url = "https://perldoc.perl.org/#{self.release}/"
  36. end
  37. version '5.26' do
  38. self.release = '5.26.3'
  39. self.base_url = "https://perldoc.perl.org/#{self.release}/"
  40. end
  41. version '5.24' do
  42. self.release = '5.24.4'
  43. self.base_url = "https://perldoc.perl.org/#{self.release}/"
  44. end
  45. version '5.22' do
  46. self.release = '5.22.4'
  47. self.base_url = "https://perldoc.perl.org/#{self.release}/"
  48. end
  49. version '5.20' do
  50. self.release = '5.20.3'
  51. self.base_url = "https://perldoc.perl.org/#{self.release}/"
  52. end
  53. def get_latest_version(opts)
  54. doc = fetch_doc('https://perldoc.perl.org/', opts)
  55. doc.at_css('#dropdownlink-stable').content
  56. end
  57. end
  58. end