Sha256: 9aa72c556f71c5631beaec8e8e3b2211c949b816af5ffa8588b103ecd68bb689

Contents?: true

Size: 1.52 KB

Versions: 12

Compression:

Stored size: 1.52 KB

Contents

require 'spout/models/graphables/default'
require 'spout/helpers/array_statistics'

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

        def categories
          filtered_subjects = filter_and_sort_subjects

          return [] if filtered_subjects.size == 0

          [:quartile_one, :quartile_two, :quartile_three, :quartile_four].collect do |quartile|
            quartile = filtered_subjects.send(quartile).collect(&@chart_variable.id.to_sym)
            "#{quartile.min} to #{quartile.max}"
          end
        end

        def units
          'percent'
        end

        def series
          filtered_subjects = filter_and_sort_subjects

          return [] if filtered_subjects.size == 0

          filtered_domain_options(@variable).collect do |option|
            data = [:quartile_one, :quartile_two, :quartile_three, :quartile_four].collect do |quartile|
              filtered_subjects.send(quartile).select{ |s| s.send(@variable.id) == option.value }.count
            end
            { name: option.display_name, data: data }
          end
        end

        def stacking
          'percent'
        end

        private

        def filter_and_sort_subjects
          @filter_and_sort_subjects ||= begin
            @subjects.select do |s|
              s.send(@variable.id) != nil and s.send(@chart_variable.id) != nil
            end.sort_by(&@chart_variable.id.to_sym)
          rescue
            []
          end
        end

      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
spout-0.11.0 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.11.0.rc lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.11.0.beta3 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.11.0.beta2 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.11.0.beta1 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.10.2 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.10.1 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.10.0 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.10.0.rc3 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.10.0.rc2 lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.10.0.rc lib/spout/models/graphables/choices_vs_numeric.rb
spout-0.10.0.beta10 lib/spout/models/graphables/choices_vs_numeric.rb