Class: CustomSort::Magic::Enumerable

Inherits:
CustomSort::Magic show all
Defined in:
lib/custom_sort/magic.rb

Instance Attribute Summary

Attributes inherited from CustomSort::Magic

#options, #query_name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from CustomSort::Magic

#initialize, validate_period

Constructor Details

This class inherits a constructor from CustomSort::Magic

Class Method Details

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



27
28
29
# File 'lib/custom_sort/magic.rb', line 27

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

Instance Method Details

#sort_by(enum, &_block) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/custom_sort/magic.rb', line 18

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