class Spoom::Coverage::D3::Timeline::Versions

Public Class Methods

new(id, snapshots) click to toggle source
Calls superclass method Spoom::Coverage::D3::Timeline::new
# File lib/spoom/coverage/d3/timeline.rb, line 232
def initialize(id, snapshots)
  data = snapshots.map do |snapshot|
    {
      timestamp: snapshot.commit_timestamp,
      commit: snapshot.commit_sha,
      static: snapshot.version_static,
      runtime: snapshot.version_runtime,
    }
  end
  super(id, data, [])
end

Public Instance Methods

plot() click to toggle source
# File lib/spoom/coverage/d3/timeline.rb, line 259
          def plot
            <<~JS
              #{x_scale}
              #{y_scale(
                min: "d3.min([d3.min(data_#{id}, (d) => parseVersion(d.static)),
                              d3.min(data_#{id}, (d) => parseVersion(d.runtime))]) - 0.01",
                max: "d3.max([d3.max(data_#{id}, (d) => parseVersion(d.static)),
                              d3.max(data_#{id}, (d) => parseVersion(d.runtime))]) + 0.01",
                ticks: 'ticks(8)'
              )}
              #{line(y: 'parseVersion(d.runtime)', color: '#e83e8c', curve: 'curveStepAfter')}
              #{line(y: 'parseVersion(d.static)', color: '#007bff', curve: 'curveStepAfter')}
              #{points(y: 'parseVersion(d.static)')}
              #{x_ticks}
              #{y_ticks(ticks: 'ticks(4)', format: "'v0.' + d.toFixed(2)", padding: 50)}
            JS
          end
tooltip() click to toggle source
# File lib/spoom/coverage/d3/timeline.rb, line 245
          def tooltip
            <<~JS
              function tooltip_#{id}(d) {
                moveTooltip(d)
                  .html("commit <b>" + d.commit + "</b><br>"
                    + d3.timeFormat("%y/%m/%d")(parseDate(d.timestamp)) + "<br><br>"
                    + "static: v<b>" + d.static + "</b><br>"
                    + "runtime: v<b>" + d.runtime + "</b><br><br>"
                    + "versions from<br>Gemfile.lock")
              }
            JS
          end