1
0

rethinkdb.rb 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. module Docs
  2. class Rethinkdb < UrlScraper
  3. self.name = 'RethinkDB'
  4. self.type = 'rethinkdb'
  5. self.base_url = 'https://rethinkdb.com/'
  6. self.release = '2.4.1'
  7. self.root_path = 'docs/'
  8. self.links = {
  9. home: 'https://rethinkdb.com/',
  10. code: 'https://github.com/rethinkdb/rethinkdb'
  11. }
  12. html_filters.push 'rethinkdb/entries', 'rethinkdb/clean_html'
  13. options[:trailing_slash] = true
  14. options[:container] = '.documentation'
  15. options[:only_patterns] = [/\Adocs/]
  16. options[:skip_patterns] = [/docs\/install(\-drivers)?\/./]
  17. options[:skip] = %w(
  18. docs/build/
  19. docs/tutorials/elections/
  20. docs/tutorials/superheroes/
  21. )
  22. MULTILANG_DOCS = %w(
  23. changefeeds
  24. cookbook
  25. dates-and-times
  26. geo-support
  27. guide
  28. nested-fields
  29. publish-subscribe
  30. rabbitmq
  31. secondary-indexes
  32. sql-to-reql
  33. storing-binary
  34. )
  35. options[:attribution] = <<-HTML
  36. &copy; RethinkDB contributors<br>
  37. Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
  38. HTML
  39. version 'javascript' do
  40. self.initial_paths = %w(api/javascript/)
  41. options[:only_patterns] += [/\Aapi\/javascript\//]
  42. options[:fix_urls] = ->(url) do
  43. url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/javascript/'
  44. url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!javascript/).*}, 'rethinkdb.com/docs/\\1/javascript/'
  45. url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/javascript/'
  46. url
  47. end
  48. end
  49. version 'ruby' do
  50. self.initial_paths = %w(api/ruby/)
  51. options[:only_patterns] += [/\Aapi\/ruby\//]
  52. options[:fix_urls] = ->(url) do
  53. url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/ruby/'
  54. url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!ruby/).*}, 'rethinkdb.com/docs/\\1/ruby/'
  55. url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/ruby/'
  56. url
  57. end
  58. end
  59. version 'python' do
  60. self.initial_paths = %w(api/python/)
  61. options[:only_patterns] += [/\Aapi\/python\//]
  62. options[:fix_urls] = ->(url) do
  63. url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/python/'
  64. url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!python/).*}, 'rethinkdb.com/docs/\\1/python/'
  65. url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/python/'
  66. url
  67. end
  68. end
  69. version 'java' do
  70. self.initial_paths = %w(api/java/)
  71. options[:only_patterns] += [/\Aapi\/java\//]
  72. options[:fix_urls] = ->(url) do
  73. url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})\\z}, 'rethinkdb.com/docs/\\1/java/'
  74. url.sub! %r{rethinkdb.com/docs/(#{MULTILANG_DOCS.join('|')})/(?!java/).*}, 'rethinkdb.com/docs/\\1/java/'
  75. url.sub! %r{rethinkdb.com/api/(?!javascript|ruby|python|java)}, 'rethinkdb.com/api/java/'
  76. url
  77. end
  78. end
  79. def get_latest_version(opts)
  80. get_latest_github_release('rethinkdb', 'rethinkdb', opts)
  81. end
  82. private
  83. def process_response?(response)
  84. return false unless super
  85. response.body !~ /http-equiv="refresh"/i
  86. end
  87. end
  88. end