Class: Debci::HTML
- Inherits:
-
Object
- Object
- Debci::HTML
- Includes:
- HTMLHelpers, ERB::Util
- Defined in:
- lib/debci/html.rb
Constant Summary
Constants included from HTMLHelpers
Instance Attribute Summary collapse
-
#root_directory ⇒ Object
readonly
Returns the value of attribute root_directory.
Instance Method Summary collapse
- #blacklist(filename) ⇒ Object
-
#expand_url(url, suite) ⇒ Object
expand { SUITE } macro in URLs.
- #history(package, suite, architecture, filename) ⇒ Object
- #index(filename) ⇒ Object
-
#initialize(root_directory = Debci.config.html_dir) ⇒ HTML
constructor
A new instance of HTML.
- #obsolete_packages_page(filename) ⇒ Object
- #package(package, filename) ⇒ Object
- #platform_specific_issues(dirname) ⇒ Object
- #prefix(prefix, filename) ⇒ Object
- #status(filename) ⇒ Object
- #status_alerts(filename) ⇒ Object
- #status_failing(dirname) ⇒ Object
- #status_pending_jobs(dirname) ⇒ Object
- #status_slow(filename) ⇒ Object
Methods included from HTMLHelpers
Constructor Details
#initialize(root_directory = Debci.config.html_dir) ⇒ HTML
Returns a new instance of HTML.
17 18 19 20 21 22 23 24 |
# File 'lib/debci/html.rb', line 17 def initialize(root_directory=Debci.config.html_dir) @root_directory = root_directory @repository = Debci::Repository.new @package_prefixes = @repository.prefixes @head = read_config_file('head.html') @footer = read_config_file('footer.html') end |
Instance Attribute Details
#root_directory ⇒ Object (readonly)
Returns the value of attribute root_directory.
15 16 17 |
# File 'lib/debci/html.rb', line 15 def root_directory @root_directory end |
Instance Method Details
#blacklist(filename) ⇒ Object
92 93 94 95 |
# File 'lib/debci/html.rb', line 92 def blacklist(filename) @status_nav = load_template(:status_nav) (:blacklist, filename) end |
#expand_url(url, suite) ⇒ Object
expand { SUITE } macro in URLs
115 116 117 |
# File 'lib/debci/html.rb', line 115 def (url, suite) url && url.gsub('{SUITE}', suite) end |
#history(package, suite, architecture, filename) ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/debci/html.rb', line 119 def history(package, suite, architecture, filename) @package = package @suite = suite @architecture = architecture @packages_dir = 'data/packages' @package_dir = File.join(suite, architecture, package.prefix, package.name) @site_url = (Debci.config.url_base, @suite) @artifacts_url_base = (Debci.config.artifacts_url_base, @suite) @moretitle = "#{package.name}/#{suite}/#{architecture}" history = package.history(@suite, @architecture) @latest = history && history.first @history = package.history(@suite, @architecture) @latest = @history && @history.first @package_links = load_template(:package_links) (:history, filename) end |
#index(filename) ⇒ Object
26 27 28 29 |
# File 'lib/debci/html.rb', line 26 def index(filename) @news = @repository.global_news (:index, filename) end |
#obsolete_packages_page(filename) ⇒ Object
110 111 112 |
# File 'lib/debci/html.rb', line 110 def obsolete_packages_page(filename) (:packages, filename) end |
#package(package, filename) ⇒ Object
97 98 99 100 101 102 |
# File 'lib/debci/html.rb', line 97 def package(package, filename) @package = package @moretitle = package.name @package_links = load_template(:package_links) (:package, filename) end |
#platform_specific_issues(dirname) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/debci/html.rb', line 77 def platform_specific_issues(dirname) @status_nav = load_template(:status_nav) @filters = { "#{dirname}": ["All", -1], "#{dirname}/last_thirty_days": ["Last 30 Days", 30], "#{dirname}/last_one_eighty_days": ["Last 180 Days", 180], "#{dirname}/last_year": ["Last Year", 365] } @filters.each do |target, filter| generate_platform_specific_issues(target, filter) end end |
#prefix(prefix, filename) ⇒ Object
104 105 106 107 108 |
# File 'lib/debci/html.rb', line 104 def prefix(prefix, filename) @prefix = prefix @moretitle = prefix (:packagelist, filename) end |
#status(filename) ⇒ Object
31 32 33 34 |
# File 'lib/debci/html.rb', line 31 def status(filename) @status_nav = load_template(:status_nav) (:status, filename) end |
#status_alerts(filename) ⇒ Object
36 37 38 39 40 |
# File 'lib/debci/html.rb', line 36 def status_alerts(filename) @tmpfail = @repository.tmpfail_packages @alert_number = @tmpfail.length (:status_alerts, filename) end |
#status_failing(dirname) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/debci/html.rb', line 60 def status_failing(dirname) @status_nav = load_template(:status_nav) packages = @repository.failing_packages @packages_per_page = Debci.config.failing_packages_per_page.to_i @filters = { 'had_success': 'Had Success', 'always_failing': 'Always Failing' } generate_status_failing(dirname, packages, @filters.each_key, @packages_per_page) @repository.suites.map do |suite| generate_status_failing(dirname, packages, @filters.each_key, @packages_per_page, suite) end end |
#status_pending_jobs(dirname) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/debci/html.rb', line 47 def status_pending_jobs(dirname) @status_nav = load_template(:status_nav) @status_per_page = Debci.config.pending_status_per_page.to_i @pending_jobs = Debci::Job.pending.length @suites_jobs = Hash[@repository.suites.map do |x| [x, Debci::Job.pending.where(suite: x).count] end ] generate_status_pending(dirname, nil) # For 'All suites' @suites_jobs.each_key { |suite| generate_status_pending(dirname, suite) } end |
#status_slow(filename) ⇒ Object
42 43 44 45 |
# File 'lib/debci/html.rb', line 42 def status_slow(filename) @slow = @repository.slow_packages (:status_slow, filename) end |