Class: Bundler::Spinel::LoadBearing

Inherits:
Object
  • Object
show all
Defined in:
lib/bundler/spinel/load_bearing.rb

Overview

The “build-it-first” roadmap page: which gems, if made to compile, unblock the most of the ecosystem. Reads the committed harness/load-bearing/targets.tsv (transitive load-bearing + buildability impact, precomputed from the local dependency graph) and renders a clear, status-coloured table. Static, committed in site/ like the history page.

Constant Summary collapse

DATA =
File.expand_path("../../../harness/load-bearing/targets.tsv", __dir__)
GLYPH =
Site::GLYPH
BUILDABLE =

Buildability snapshot @ 95557f5 (from harness/load-bearing/buildability.rb).

50_688
BLOCKED =
29_139
REJECTED =
110_256

Instance Method Summary collapse

Constructor Details

#initialize(data = DATA) ⇒ LoadBearing

Returns a new instance of LoadBearing.



20
# File 'lib/bundler/spinel/load_bearing.rb', line 20

def initialize(data = DATA) = (@data = data)

Instance Method Details

#build_html(out) ⇒ Object



22
23
24
25
26
27
# File 'lib/bundler/spinel/load_bearing.rb', line 22

def build_html(out)
  rows = File.exist?(@data) ? File.readlines(@data)[1..].map { |l| l.chomp.split("\t") } : []
  compiler = rows.select { |r| r[7] == "compiler" }.sort_by { |r| -r[1].to_i }
  File.write(out, page("Load-bearing gems — SpinelGems", body(compiler, rows)))
  out
end