Class: CustomSort::MagicNew::Enumerable

Inherits:
CustomSort::MagicNew show all
Defined in:
lib/custom_sort/magic_new.rb

Instance Attribute Summary

Attributes inherited from CustomSort::MagicNew

#label, #options, #query_name, #recency_key, #recent, #sort_order

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from CustomSort::MagicNew

#initialize, validate_period

Constructor Details

This class inherits a constructor from CustomSort::MagicNew

Class Method Details

.customsort_by(enum, query_name, options, &block) ⇒ Object



35
36
37
# File 'lib/custom_sort/magic_new.rb', line 35

def self.customsort_by(enum, query_name, options, &block)
  CustomSort::MagicNew::Enumerable.new(query_name: query_name, **options).group_by(enum, &block)
end

Instance Method Details

#customsort_by(enum, &_block) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/custom_sort/magic_new.rb', line 26

def customsort_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