1
0

ember.rb 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. # frozen_string_literal: true
  2. module Docs
  3. class Ember < UrlScraper
  4. include MultipleBaseUrls
  5. self.name = 'Ember.js'
  6. self.slug = 'ember'
  7. self.type = 'ember'
  8. self.links = {
  9. home: 'https://emberjs.com/',
  10. code: 'https://github.com/emberjs/ember.js'
  11. }
  12. html_filters.push 'ember/entries', 'ember/clean_html'
  13. options[:trailing_slash] = false
  14. options[:container] = ->(filter) do
  15. if filter.base_url.host.start_with?('api')
  16. 'main'
  17. else
  18. 'main article'
  19. end
  20. end
  21. options[:fix_urls] = ->(url) do
  22. url.sub! '?anchor=', '#'
  23. url.sub! %r{/methods/[^?#/]+}, '/methods'
  24. url.sub! %r{/properties/[^?#/]+}, '/properties'
  25. url.sub! %r{/events/[^?#/]+}, '/events'
  26. url
  27. end
  28. options[:skip_patterns] = [
  29. /\._/,
  30. /contributing/,
  31. /tutorial/,
  32. /js-primer/,
  33. /in-depth-topics$/,
  34. /managing-dependencies$/
  35. ]
  36. options[:attribution] = <<-HTML
  37. &copy; 2022 Yehuda Katz, Tom Dale and Ember.js contributors<br>
  38. Licensed under the MIT License.
  39. HTML
  40. options[:decode_and_clean_paths] = true # handle paths like @ember/application
  41. version '4' do
  42. self.release = '4.9.0'
  43. self.base_urls = %w[
  44. https://guides.emberjs.com/v4.9.0/
  45. https://api.emberjs.com/ember/4.9/
  46. https://api.emberjs.com/ember-data/4.9/
  47. ]
  48. end
  49. version '3' do
  50. self.release = '3.28.0'
  51. self.base_urls = %w[
  52. https://guides.emberjs.com/v3.28.0/
  53. https://api.emberjs.com/ember/3.28/
  54. https://api.emberjs.com/ember-data/3.28/
  55. ]
  56. end
  57. version '2' do
  58. self.release = '2.18.0'
  59. self.base_urls = %w[
  60. https://guides.emberjs.com/v2.18.0/
  61. https://api.emberjs.com/ember/2.18/
  62. https://api.emberjs.com/ember-data/2.18/
  63. ]
  64. options[:skip_patterns].push(/handlebars-basics$/)
  65. end
  66. def get_latest_version(opts)
  67. doc = fetch_doc('https://api.emberjs.com/ember/release', opts)
  68. doc.at_css('.sidebar > .select-container .ember-power-select-selected-item').content.strip
  69. end
  70. end
  71. end