84 lines · 2.1 KB · Ruby
RawDownload
# frozen_string_literal: true module Docs  class Ember < UrlScraper    include MultipleBaseUrls     self.name = 'Ember.js'    self.slug = 'ember'    self.type = 'ember'    self.links = {      home: 'https://emberjs.com/',      code: 'https://github.com/emberjs/ember.js'    }     html_filters.push 'ember/entries', 'ember/clean_html'     options[:trailing_slash] = false     options[:container] = ->(filter) do      if filter.base_url.host.start_with?('api')        'main'      else        'main article'      end    end     options[:fix_urls] = ->(url) do      url.sub! '?anchor=', '#'      url.sub! %r{/methods/[^?#/]+}, '/methods'      url.sub! %r{/properties/[^?#/]+}, '/properties'      url.sub! %r{/events/[^?#/]+}, '/events'      url    end     options[:skip_patterns] = [      /\._/,      /contributing/,      /tutorial/,      /js-primer/,      /in-depth-topics$/,      /managing-dependencies$/    ]     options[:attribution] = <<-HTML      &copy; 2022 Yehuda Katz, Tom Dale and Ember.js contributors<br>      Licensed under the MIT License.    HTML     options[:decode_and_clean_paths] = true # handle paths like @ember/application     version '4' do      self.release = '4.9.0'      self.base_urls = %w[        https://guides.emberjs.com/v4.9.0/        https://api.emberjs.com/ember/4.9/        https://api.emberjs.com/ember-data/4.9/      ]    end     version '3' do      self.release = '3.28.0'      self.base_urls = %w[        https://guides.emberjs.com/v3.28.0/        https://api.emberjs.com/ember/3.28/        https://api.emberjs.com/ember-data/3.28/      ]    end     version '2' do      self.release = '2.18.0'      self.base_urls = %w[        https://guides.emberjs.com/v2.18.0/        https://api.emberjs.com/ember/2.18/        https://api.emberjs.com/ember-data/2.18/      ]      options[:skip_patterns].push(/handlebars-basics$/)    end     def get_latest_version(opts)      doc = fetch_doc('https://api.emberjs.com/ember/release', opts)      doc.at_css('.sidebar > .select-container .ember-power-select-selected-item').content.strip    end  endend