Sha256: 3a740ff9c4fb6bfe6faf5f8ebf41a41ee5e8c19af90d822e285c4e7160bd42fe
Contents?: true
Size: 919 Bytes
Versions: 1
Compression:
Stored size: 919 Bytes
Contents
module Groupdate module QueryMethods Groupdate::PERIODS.each do |period| define_method :"group_by_#{period}" do |field, time_zone = nil, range = nil, **options| warn "[groupdate] positional arguments for time zone and range are deprecated" if time_zone || range Groupdate::Magic::Relation.generate_relation(self, period: period, field: field, time_zone: time_zone, range: range, **options ) end end def group_by_period(period, field, permit: nil, **options) # to_sym is unsafe on user input, so convert to strings permitted_periods = ((permit || Groupdate::PERIODS).map(&:to_sym) & Groupdate::PERIODS).map(&:to_s) if permitted_periods.include?(period.to_s) send("group_by_#{period}", field, **options) else raise ArgumentError, "Unpermitted period" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
groupdate-4.3.0 | lib/groupdate/query_methods.rb |