mirror of
https://github.com/freeCodeCamp/devdocs
synced 2024-11-16 19:48:10 +01:00
112 lines
3.4 KiB
Ruby
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
|
|
© 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
|