Sha256: 6ca3332572eea9963826d782d8e9dc257f644c4e74c1eef600cb88ba7daa96bb

Contents?: true

Size: 629 Bytes

Versions: 4

Compression:

Stored size: 629 Bytes

Contents

module Groupdate
  class Calculations
    attr_reader :relation

    def initialize(relation)
      @relation = relation
    end

    def include?(method)
      # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation/calculations.rb
      ActiveRecord::Calculations.method_defined?(method) || custom_calculations.include?(method)
    end

    def custom_calculations
      return [] if !model.respond_to?(:groupdate_calculation_methods)
      model.groupdate_calculation_methods
    end

    private

    def model
      return if !relation.respond_to?(:klass)
      relation.klass
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
groupdate-3.2.1 lib/groupdate/calculations.rb
groupdate-3.2.0 lib/groupdate/calculations.rb
groupdate-3.1.1 lib/groupdate/calculations.rb
groupdate-3.1.0 lib/groupdate/calculations.rb