angularjs.rb 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. module Docs
  2. class Angularjs < UrlScraper
  3. self.name = 'Angular.js'
  4. self.slug = 'angularjs'
  5. self.type = 'angularjs'
  6. self.root_path = 'api.html'
  7. self.initial_paths = %w(guide.html guide/controller.html)
  8. html_filters.push 'angularjs/clean_html', 'angularjs/entries', 'title'
  9. text_filters.push 'angularjs/clean_urls'
  10. options[:title] = false
  11. options[:root_title] = 'Angular.js'
  12. options[:decode_and_clean_paths] = true
  13. options[:fix_urls_before_parse] = ->(str) do
  14. str.gsub!('[', '%5B')
  15. str.gsub!(']', '%5D')
  16. str
  17. end
  18. options[:fix_urls] = ->(url) do
  19. %w(api guide).each do |str|
  20. url.sub! "/partials/#{str}/#{str}/", "/partials/#{str}/"
  21. url.sub! %r{/#{str}/img/}, '/img/'
  22. url.sub! %r{/#{str}/(.+?)/#{str}/}, "/#{str}/"
  23. url.sub! %r{/partials/#{str}/(.+?)(?<!\.html)(?:\z|(#.*))}, "/partials/#{str}/\\1.html\\2"
  24. url.sub! %r{/partials/(?!img).+/#{str}/}, "/partials/#{str}/"
  25. end
  26. url
  27. end
  28. options[:only_patterns] = [%r{\Aapi}, %r{\Aguide}]
  29. options[:skip] = %w(api/ng.html)
  30. options[:attribution] = <<-HTML
  31. &copy; 2010&ndash;2017 Google, Inc.<br>
  32. Licensed under the Creative Commons Attribution License 4.0.
  33. HTML
  34. stub '' do
  35. capybara = load_capybara_selenium
  36. capybara.app_host = 'https://code.angularjs.org'
  37. capybara.visit("/#{self.class.release}/docs/api")
  38. capybara.execute_script("return document.querySelector('.side-navigation').innerHTML")
  39. end
  40. version '1.6' do
  41. self.release = '1.6.6'
  42. self.base_url = "https://code.angularjs.org/#{release}/docs/partials/"
  43. end
  44. version '1.5' do
  45. self.release = '1.5.11'
  46. self.base_url = "https://code.angularjs.org/#{release}/docs/partials/"
  47. end
  48. version '1.4' do
  49. self.release = '1.4.14'
  50. self.base_url = "https://code.angularjs.org/#{release}/docs/partials/"
  51. end
  52. version '1.3' do
  53. self.release = '1.3.20'
  54. self.base_url = "https://code.angularjs.org/#{release}/docs/partials/"
  55. end
  56. version '1.2' do
  57. self.release = '1.2.32'
  58. self.base_url = "https://code.angularjs.org/#{release}/docs/partials/"
  59. end
  60. end
  61. end