14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/groupdate/enumerable.rb', line 14
def group_by_period(*args, &block)
if block || !respond_to?(:scoping)
period = args[0]
options = args[1] || {}
options = options.dup
permitted_periods = ((options.delete(:permit) || Groupdate::PERIODS).map(&:to_sym) & Groupdate::PERIODS).map(&:to_s)
if permitted_periods.include?(period.to_s)
send("group_by_#{period}", options, &block)
else
raise ArgumentError, "Unpermitted period"
end
else
scoping { @klass.send(:group_by_period, *args, &block) }
end
end
|