113 lines · 3.0 KB · Ruby
RawDownload
module Docs  class Haproxy < UrlScraper    self.name = 'HAProxy'    self.type = 'haproxy'    self.root_path = 'intro.html'    self.initial_paths = %w(intro.html configuration.html management.html)    self.links = {      home: 'https://www.haproxy.org/',      code: 'https://github.com/haproxy/haproxy'    }     html_filters.push 'haproxy/clean_html', 'haproxy/entries'     options[:container] = '#page-wrapper > .row > .col-lg-12'     options[:follow_links] = false     options[:attribution] = <<-HTML      &copy; 2025 Willy Tarreau, HAProxy contributors<br>      Licensed under the GNU General Public License version 2.    HTML     version '3.3' do      self.release = '3.3.0'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '3.2' do      self.release = '3.2.9'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '3.1' do      self.release = '3.1.10'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '3.0' do      self.release = '3.0.12'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '2.9' do      self.release = '2.9.0'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '2.8' do      self.release = '2.8.0'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '2.7' do      self.release = '2.7.0'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '2.6' do      self.release = '2.6.5'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '2.5' do      self.release = '2.5.8'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '2.4' do      self.release = '2.4.18'      self.base_url = "https://docs.haproxy.org/#{self.version}/"    end     version '2.3' do      self.release = '2.3.0'      self.base_url = "http://cbonte.github.io/haproxy-dconv/#{self.version}/"    end     version '2.2' do      self.release = '2.2.5'      self.base_url = "http://cbonte.github.io/haproxy-dconv/#{self.version}/"    end     version '2.1' do      self.release = '2.1.10'      self.base_url = "http://cbonte.github.io/haproxy-dconv/#{self.version}/"    end     version '2.0' do      self.release = '2.0.19'      self.base_url = "http://cbonte.github.io/haproxy-dconv/#{self.version}/"    end     version '1.9' do      self.release = '1.9.16'      self.base_url = "http://cbonte.github.io/haproxy-dconv/#{self.version}/"    end     version '1.8' do      self.release = '1.8.27'      self.base_url = "http://cbonte.github.io/haproxy-dconv/#{self.version}/"    end     version '1.7' do      self.release = '1.7.12'      self.base_url = "http://cbonte.github.io/haproxy-dconv/#{self.version}/"    end     def get_latest_version(opts)      doc = fetch_doc('https://www.haproxy.org', opts)      doc.at_css('table[cols=6]').at_css('tr:not(:first-child) > td:first-child:not(:contains("dev"))').content    end  endend