class Groupdate::Magic::Enumerable

Public Class Methods

group_by(enum, period, options, &block) click to toggle source
# File lib/groupdate/magic.rb, line 116
def self.group_by(enum, period, options, &block)
  Groupdate::Magic::Enumerable.new(period: period, **options).group_by(enum, &block)
end

Public Instance Methods

group_by(enum) { |v| ... } click to toggle source
# File lib/groupdate/magic.rb, line 107
def group_by(enum, &_block)
  group = enum.group_by do |v|
    v = yield(v)
    raise ArgumentError, "Not a time" unless v.respond_to?(:to_time)
    series_builder.round_time(v)
  end
  series_builder.generate(group, default_value: [], series_default: false)
end