112 lines · 3.4 KB · Ruby
RawDownload
module Docs  class Rethinkdb < UrlScraper    self.name = 'RethinkDB'    self.type = 'rethinkdb'    self.base_url = 'https://rethinkdb.com/'    self.release = '2.4.1'    self.root_path = 'docs/'    self.links = {      home: 'https://rethinkdb.com/',      code: 'https://github.com/rethinkdb/rethinkdb'    }     html_filters.push 'rethinkdb/entries', 'rethinkdb/clean_html'     options[:trailing_slash] = true     options[:container] = '.documentation'     options[:only_patterns] = [/\Adocs/]     options[:skip_patterns] = [/docs\/install(\-drivers)?\/./]     options[:skip] = %w(      docs/build/      docs/tutorials/elections/      docs/tutorials/superheroes/      )     MULTILANG_DOCS = %w(      changefeeds      cookbook      dates-and-times      geo-support      guide      nested-fields      publish-subscribe      rabbitmq      secondary-indexes      sql-to-reql      storing-binary      )     options[:attribution] = <<-HTML      &copy; RethinkDB contributors<br>      Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.    HTML     version 'javascript' do      self.initial_paths = %w(api/javascript/)       options[:only_patterns] += [/\Aapi\/javascript\//]       options[:fix_urls] = ->(url) do        url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/javascript/'        url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!javascript/).*}, 'rethinkdb.com/docs/\\1/javascript/'        url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/javascript/'        url      end    end     version 'ruby' do      self.initial_paths = %w(api/ruby/)       options[:only_patterns] += [/\Aapi\/ruby\//]       options[:fix_urls] = ->(url) do        url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/ruby/'        url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!ruby/).*}, 'rethinkdb.com/docs/\\1/ruby/'        url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/ruby/'        url      end    end       version 'python' do        self.initial_paths = %w(api/python/)         options[:only_patterns] += [/\Aapi\/python\//]         options[:fix_urls] = ->(url) do          url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/python/'          url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!python/).*}, 'rethinkdb.com/docs/\\1/python/'          url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/python/'          url        end      end       version 'java' do        self.initial_paths = %w(api/java/)         options[:only_patterns] += [/\Aapi\/java\//]         options[:fix_urls] = ->(url) do          url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/java/'          url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!java/).*}, 'rethinkdb.com/docs/\\1/java/'          url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/java/'          url        end      end     def get_latest_version(opts)      get_latest_github_release('rethinkdb', 'rethinkdb', opts)    end     private     def process_response?(response)      return false unless super      response.body !~ /http-equiv="refresh"/i    end   endend