| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- module Docs
- class Immutable < UrlScraper
- self.name = 'Immutable.js'
- self.slug = 'immutable'
- self.type = 'simple'
- self.release = '3.8.1'
- self.base_url = 'https://facebook.github.io/immutable-js/docs/'
- self.links = {
- home: 'https://facebook.github.io/immutable-js/',
- code: 'https://github.com/facebook/immutable-js'
- }
- html_filters.push 'immutable/clean_html', 'immutable/entries', 'title'
- options[:skip_links] = true
- options[:container] = '.docContents'
- options[:root_title] = 'Immutable.js'
- options[:attribution] = <<-HTML
- © 2014–2015 Facebook, Inc.<br>
- Licensed under the 3-clause BSD License.
- HTML
- stub '' do
- capybara = load_capybara_selenium
- capybara.app_host = 'https://facebook.github.io'
- capybara.visit(URL.parse(self.base_url).path)
- capybara.execute_script <<-JS
- var content, event, links, link;
- event = document.createEvent('Event');
- event.initEvent('hashchange', false, false);
- content = document.querySelector('.docContents section').cloneNode(true);
- links = Array.prototype.slice.call(document.querySelectorAll('.sideBar .scrollContent a'));
- while (link = links.shift()) {
- if (!document.body.contains(link)) {
- document.body.appendChild(link);
- }
- link.click();
- dispatchEvent(event);
- content.innerHTML += document.querySelector('.docContents').innerHTML;
- document.querySelectorAll('.sideBar .scrollContent .groupTitle').forEach(function(el) {
- if (el.textContent == 'Types') {
- Array.prototype.unshift.apply(links, Array.prototype.slice.call(el.parentNode.querySelectorAll('a')));
- }
- });
- }
- document.querySelector('.docContents').innerHTML = content.innerHTML;
- JS
- capybara.html
- end
- def get_latest_version(opts)
- get_npm_version('immutable', opts)
- end
- end
- end
|