class ToBarGraph::Bucketizer

Public Class Methods

new(data) click to toggle source
# File lib/bucketizer.rb, line 5
def initialize(data)
  @data = data
end

Public Instance Methods

create_buckets() click to toggle source
# File lib/bucketizer.rb, line 9
def create_buckets
  return create_buckets_from_hash if(@data.is_a?(Hash))

  return create_buckets_from_array if(@data.is_a?(Array))

  raise ArgumentError, "You need to provide either an Array or a Hash"
end

Private Instance Methods

create_buckets_from_array() click to toggle source
# File lib/bucketizer.rb, line 18
def create_buckets_from_array
  buckets = {}
  
  @data.delete(nil)

  @data.each do |e|
    buckets[e] ||= 0
    buckets[e] += 1
  end

  return buckets
end
create_buckets_from_hash() click to toggle source
# File lib/bucketizer.rb, line 31
def create_buckets_from_hash
  buckets = {}

  @data.each { |k, v| buckets[k] = v unless (v.nil? || k.nil?) }
  
  if(buckets.any? { |k, v| v.is_a?(String) })
    return buckets.map { |k, v| [k, v.to_i] }.to_h
  end


  
  return buckets
end