Sha256: 66e98f86b105a542655ce7a3eabad4a20fb8528bcf11bf245270c0945c553690

Contents?: true

Size: 728 Bytes

Versions: 2

Compression:

Stored size: 728 Bytes

Contents

# frozen_string_literal: true

module Gruff
  # @private
  class Store
    class BaseData < Struct.new(:label, :points, :color)
      def initialize(label, points, color)
        self.label = label.to_s
        self.points = Array(points)
        self.color = color
      end

      def empty?
        points.empty?
      end

      def columns
        points.length
      end

      def min
        points.compact.min
      end

      def max
        points.compact.max
      end

      def normalize(args = {})
        norm_points = points.map do |point|
          point.nil? ? nil : (point.to_f - args[:minimum].to_f) / args[:spread]
        end

        self.class.new(label, norm_points, color)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gruff-0.11.0 lib/gruff/store/base_data.rb
gruff-0.11.0-java lib/gruff/store/base_data.rb