Sha256: bd3f02447a6390961996cfb6a8bb21677eb49bbdfc7d0dd6d71179b43a4c8ce1
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
require "flex_station_data/presenters/sample_csv" require "flex_station_data/presenters/linear_regression/sample_regression_hash" module FlexStationData module Presenters module LinearRegression class SampleHash include Concerns::Presenter attr_reader :times, :sample, :quality_control, :options def initialize(times, sample, quality_control: SampleQuality, **options) @times = times @sample = sample @quality_control = quality_control @options = options end def errors @errors ||= quality_control.call(sample, **options).reject(&:good?) end def errors? errors.present? end def errors_hash { "error" => errors.first&.to_s } end def wells_hash { "wells" => sample.wells.join(", ") } end def regression_hash return SampleRegressionHash.headers.zip([]).to_h if errors? SampleRegressionHash.present(times, sample.mean, **options).transform_values(&:first) end def present { "sample" => sample.label }.merge(wells_hash).merge(errors_hash).merge(regression_hash) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
flex-station-data-0.3.2 | lib/flex_station_data/presenters/linear_regression/sample_hash.rb |