1
0

ember.rb 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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.release = '3.25.0'
  9. self.base_urls = %w[
  10. https://guides.emberjs.com/v3.25.0/
  11. https://api.emberjs.com/ember/3.25/
  12. https://api.emberjs.com/ember-data/3.25/
  13. ]
  14. self.links = {
  15. home: 'https://emberjs.com/',
  16. code: 'https://github.com/emberjs/ember.js'
  17. }
  18. html_filters.push 'ember/entries', 'ember/clean_html'
  19. options[:trailing_slash] = false
  20. options[:container] = ->(filter) do
  21. if filter.base_url.host.start_with?('api')
  22. 'main'
  23. else
  24. 'main article'
  25. end
  26. end
  27. options[:fix_urls] = ->(url) do
  28. url.sub! '?anchor=', '#'
  29. url.sub! %r{/methods/[^?#/]+}, '/methods'
  30. url.sub! %r{/properties/[^?#/]+}, '/properties'
  31. url.sub! %r{/events/[^?#/]+}, '/events'
  32. url
  33. end
  34. options[:skip_patterns] = [
  35. /\._/,
  36. /contributing/,
  37. /tutorial/,
  38. /js-primer/,
  39. /in-depth-topics$/,
  40. /managing-dependencies$/
  41. ]
  42. options[:attribution] = <<-HTML
  43. &copy; 2020 Yehuda Katz, Tom Dale and Ember.js contributors<br>
  44. Licensed under the MIT License.
  45. HTML
  46. options[:decode_and_clean_paths] = true # handle paths like @ember/application
  47. def initial_urls
  48. %w(
  49. https://guides.emberjs.com/v3.25.0/
  50. https://api.emberjs.com/ember/3.25/
  51. https://api.emberjs.com/ember-data/3.25/
  52. )
  53. end
  54. def get_latest_version(opts)
  55. doc = fetch_doc('https://api.emberjs.com/ember/release', opts)
  56. doc.at_css('.sidebar > .select-container .ember-power-select-selected-item').content.strip
  57. end
  58. end
  59. end