Sha256: c0be8a3698077115c41e7bbbb3d157a1d6ff2f0303ff334ee0fdf3f3238d960a
Contents?: true
Size: 1.78 KB
Versions: 2
Compression:
Stored size: 1.78 KB
Contents
# frozen_string_literal: true require 'quby/questionnaires/entities/charting/chart' module Quby module Questionnaires module Entities module Charting class LineChart < Chart # @return [String] # @deprecated, not used anymore attr_accessor :y_label # @return [Symbol] attr_accessor :tonality # @return [Proc] attr_accessor :baseline # @return [Float] attr_accessor :clinically_relevant_change def initialize(key, y_label: nil, tonality: :lower_is_better, baseline: nil, clinically_relevant_change: nil, **kwargs) super(key, **kwargs) self.y_label = y_label self.tonality = tonality self.baseline = baseline self.clinically_relevant_change = clinically_relevant_change end def baseline @baseline_proc ||= make_baseline_proc end def tonality=(value) fail "Invalid tonality: #{value}" unless [:higher_is_better, :lower_is_better].include?(value) @tonality = value end private def make_baseline_proc return unless @baseline case @baseline when Hash ->(age, gender) { age_match = @baseline.find { |age_range, _v| age && age_range === age } hash_by_gender = (age_match&.last || @baseline.stringify_keys["default"]) gender_match = hash_by_gender.find {|gender_key, _v| gender && gender_key.to_s == gender.to_s } gender_match&.last || hash_by_gender.stringify_keys['default'] } else ->(age, gender) { @baseline } end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
quby-5.4.0 | lib/quby/questionnaires/entities/charting/line_chart.rb |
quby-5.3.1 | lib/quby/questionnaires/entities/charting/line_chart.rb |