devdocs/lib/docs/scrapers/rethinkdb.rb
2020-12-15 14:32:49 -06:00

112 lines
3.4 KiB
Ruby

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
end
end