Sha256: 76a6ea46a834aca37ef7689968d5acd5269059be7dec7ace79ceed5736aceeae

Contents?: true

Size: 1.5 KB

Versions: 2

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

require 'spout/models/graphables/default'

module Spout
  module Models
    module Graphables
      class NumericVsChoices < Spout::Models::Graphables::Default

        def categories
          categories_result = []
          @stratification_variable.domain.options.each do |option|
            visit_subjects = @subjects.select{ |s| s._visit == option.value and s.send(@variable.id) != nil } rescue visit_subjects = []
            if visit_subjects.count > 0
              categories_result << option.display_name
            end
          end
          categories_result
        end

        def units
          @variable.units
        end

        def series
          data = []

          @stratification_variable.domain.options.each do |option|
            visit_subjects = @subjects.select{ |s| s._visit == option.value and s.send(@variable.id) != nil } rescue visit_subjects = []
            if visit_subjects.count > 0

              filtered_domain_options(@chart_variable).each_with_index do |option, index|
                values = visit_subjects.select{|s| s.send(@chart_variable.id) == option.value }.collect(&@variable.id.to_sym)
                data[index] ||= []
                data[index] << (values.mean.round(2) rescue 0.0)
              end

            end
          end

          filtered_domain_options(@chart_variable).each_with_index.collect do |option, index|
            { name: option.display_name, data: data[index] }
          end
        end

      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spout-0.12.0.beta1 lib/spout/models/graphables/numeric_vs_choices.rb
spout-0.11.1 lib/spout/models/graphables/numeric_vs_choices.rb