class Fitting::Statistics::Template

Public Class Methods

new(tested_requests, config, depth = 'valid') click to toggle source
# File lib/fitting/statistics/template.rb, line 14
def initialize(tested_requests, config, depth = 'valid')
  @tested_requests = tested_requests
  @config = config
  @depth = depth
end

Public Instance Methods

black_measurement() click to toggle source
# File lib/fitting/statistics/template.rb, line 62
def black_measurement
  @black_measurement ||=
    if @depth == 'valid'
      Fitting::Statistics::Measurement.new(black_unit)
    elsif @depth == 'cover'
      Fitting::Statistics::MeasurementCover.new(black_unit)
    elsif @depth == 'cover_enum'
      Fitting::Statistics::MeasurementCoverEnum.new(black_unit)
    elsif @depth == 'cover_one_of'
      Fitting::Statistics::MeasurementCoverOneOf.new(black_unit)
    end
end
black_statistics() click to toggle source
# File lib/fitting/statistics/template.rb, line 45
def black_statistics
  @black_statistics ||= Fitting::Statistics::Analysis.new(black_measurement, @depth)
end
black_unit() click to toggle source
# File lib/fitting/statistics/template.rb, line 81
def black_unit
  @black_unit_requests ||= documented_requests_black.inject([]) do |res, documented_request|
    res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
  end
end
documented() click to toggle source
# File lib/fitting/statistics/template.rb, line 97
def documented
  @documented_requests ||= @config.tomogram.to_a.inject([]) do |res, tomogram_request|
    res.push(Fitting::Records::Documented::Request.new(tomogram_request, white_list.to_a))
  end
end
documented_requests_black() click to toggle source
# File lib/fitting/statistics/template.rb, line 91
def documented_requests_black
  @documented_requests_black ||= documented.find_all do |request|
    !request.white
  end
end
documented_requests_white() click to toggle source
# File lib/fitting/statistics/template.rb, line 87
def documented_requests_white
  @documented_requests_white ||= documented.find_all(&:white)
end
not_covered() click to toggle source
# File lib/fitting/statistics/template.rb, line 37
def not_covered
  Fitting::Statistics::NotCoveredResponses.new(white_measurement).to_s
end
save() click to toggle source
# File lib/fitting/statistics/template.rb, line 20
def save
  File.open(@config.stats_path, 'w') { |file| file.write(stats) }
  File.open(@config.not_covered_path, 'w') { |file| file.write(not_covered) }
end
stats() click to toggle source
# File lib/fitting/statistics/template.rb, line 25
def stats
  if @config.white_list.present? || @config.resource_white_list.present? || @config.include_resources.present?
    [
      ['[Black list]', black_statistics].join("\n"),
      ['[White list]', white_statistics].join("\n"),
      ''
    ].join("\n\n")
  else
    [white_statistics, "\n\n"].join
  end
end
white_list() click to toggle source
# File lib/fitting/statistics/template.rb, line 103
def white_list
  @white_list ||= Fitting::Storage::WhiteList.new(
    @config.prefix,
    @config.white_list,
    @config.resource_white_list,
    @config.include_resources,
    @config.include_actions,
    @config.tomogram.to_resources
  )
end
white_measurement() click to toggle source
# File lib/fitting/statistics/template.rb, line 49
def white_measurement
  @white_measurement ||=
    if @depth == 'valid'
      Fitting::Statistics::Measurement.new(white_unit)
    elsif @depth == 'cover'
      Fitting::Statistics::MeasurementCover.new(white_unit)
    elsif @depth == 'cover_enum'
      Fitting::Statistics::MeasurementCoverEnum.new(white_unit)
    elsif @depth == 'cover_one_of'
      Fitting::Statistics::MeasurementCoverOneOf.new(white_unit)
    end
end
white_statistics() click to toggle source
# File lib/fitting/statistics/template.rb, line 41
def white_statistics
  @white_statistics ||= Fitting::Statistics::Analysis.new(white_measurement, @depth)
end
white_unit() click to toggle source
# File lib/fitting/statistics/template.rb, line 75
def white_unit
  @white_unit_requests ||= documented_requests_white.inject([]) do |res, documented_request|
    res.push(Fitting::Records::Unit::Request.new(documented_request, @tested_requests))
  end
end