module Docs class Angular < UrlScraper self.name = 'Angular.js' self.slug = 'angular' self.type = 'angular' self.version = '1.2.12' self.base_url = 'http://docs.angularjs.org/partials/api/' html_filters.insert_before 'normalize_paths', 'angular/clean_html' html_filters.push 'angular/entries', 'title' text_filters.push 'angular/clean_urls' options[:title] = false options[:root_title] = 'Angular.js' options[:fix_urls] = ->(url) do url.sub! '/partials/api/api/', '/partials/api/' url.sub! '/partials/api/guide/', '/guide/' url.sub! %r{/partials/api/(.+?)(? Licensed under the Creative Commons Attribution License 3.0. HTML private def request_one(url) stub_root_page if url == root_url.to_s super end def request_all(urls, &block) stub_root_page super end def stub_root_page response = Typhoeus::Response.new( effective_url: root_url.to_s, code: 200, headers: { 'Content-Type' => 'text/html' }, body: get_root_page_body) Typhoeus.stub(root_url.to_s).and_return(response) end def get_root_page_body require 'capybara' Capybara.current_driver = :selenium Capybara.visit('http://docs.angularjs.org/api/') Capybara.find('.side-navigation')['innerHTML'] end end end