120 lines · 3.2 KB · Ruby
RawDownload
module Docs  class Chef < UrlScraper    self.type = 'sphinx_simple'    self.base_url = 'https://docs.chef.io'    self.links = {      home: 'https://www.chef.io/',      code: 'https://github.com/chef/chef'    }     options[:skip_patterns] = [      /release_notes/,      /feedback/    ]     options[:attribution] = <<-HTML      &copy; Chef Software, Inc.<br>      Licensed under the Creative Commons Attribution 3.0 Unported License.<br>      The Chef&trade; Mark and Chef Logo are either registered trademarks/service marks or trademarks/service      marks of Chef, in the United States and other countries and are used with Chef Inc's permission.<br>      We are not affiliated with, endorsed or sponsored by Chef Inc.    HTML     version '18' do      self.release = '18.0.15'       options[:container] = '.off-canvas-wrapper'       options[:skip] = [        '/automate/api/',        '/habitat/supervisor_api/',        '/habitat/builder_api/'      ]       html_filters.push 'chef/entries', 'chef/clean_html'     end     version '17' do      self.release = '17.9.18'       options[:container] = '.off-canvas-wrapper'       options[:skip] = [        '/automate/api/',        '/habitat/supervisor_api/',        '/habitat/builder_api/'      ]       html_filters.push 'chef/entries', 'chef/clean_html'     end     version '16' do      self.release = '16.8.14'       options[:container] = '.off-canvas-wrapper'       options[:skip] = [        '/automate/api/',        '/habitat/supervisor_api/',        '/habitat/builder_api/'      ]       html_filters.push 'chef/entries', 'chef/clean_html'     end     version '12' do      self.release = '12.13'      self.base_url = 'https://docs-archive.chef.io/release/'       html_filters.push 'chef/entries_old', 'chef/clean_html_old'       options[:client_path] = client_path = '12-13'      options[:server_path] = server_path = 'server_12-8'       options[:skip_patterns] = [        /\A[^\/]+\/\z/,        /\A[^\/]+\/index\.html\z/,        /\A[^\/]+\/release_notes\.html\z/,        /\Aserver[^\/]+\/chef_overview\.html\z/,        /\A[\d\-]+\/server_components\.html\z/      ]       self.root_path = "#{client_path}/chef_overview.html"      self.initial_paths = ["#{server_path}/server_components.html"]       options[:only_patterns] = [/\A#{client_path}\//, /\A#{server_path}\//]    end     version '11' do      self.release = '11.18'      self.base_url = 'https://docs-archive.chef.io/release/'       html_filters.push 'chef/entries_old', 'chef/clean_html_old'       options[:client_path] = client_path = '11-18'      options[:server_path] = server_path = 'server_12-8'       options[:skip_patterns] = [        /\A[^\/]+\/\z/,        /\A[^\/]+\/index\.html\z/,        /\A[^\/]+\/release_notes\.html\z/,        /\Aserver[^\/]+\/chef_overview\.html\z/,        /\A[\d\-]+\/server_components\.html\z/      ]       self.root_path = "#{client_path}/chef_overview.html"      self.initial_paths = ["#{server_path}/server_components.html"]       options[:only_patterns] = [/\A#{client_path}\//, /\A#{server_path}\//]    end     def get_latest_version(opts)      tags = get_github_tags('chef', 'chef', opts)      tags[0]['name'][1..-1]    end   endend