Sha256: d920c6937074d028f2da7c202b426c530ffec3376a07021eb4d2b587df7fa443

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

require "active_record"
require "groupdate/order_hack"
require "groupdate/scopes"
require "groupdate/series"

ActiveRecord::Base.send(:extend, Groupdate::Scopes)

module ActiveRecord
  class Relation

    if ActiveRecord::VERSION::MAJOR == 3 and ActiveRecord::VERSION::MINOR < 2

      def method_missing_with_hack(method, *args, &block)
        if Groupdate::METHODS.include?(method)
          scoping { @klass.send(method, *args, &block) }
        else
          method_missing_without_hack(method, *args, &block)
        end
      end
      alias_method_chain :method_missing, :hack

    end

  end
end

module ActiveRecord
  module Associations
    class CollectionProxy
      if ActiveRecord::VERSION::MAJOR == 3
        delegate *Groupdate::METHODS, :to => :scoped
      end
    end
  end
end

# hack for **unfixed** rails issue
# https://github.com/rails/rails/issues/7121
module ActiveRecord
  module Calculations

    private

    def column_alias_for_with_hack(*keys)
      if keys.first.is_a?(Groupdate::OrderHack)
        keys.first.field
      else
        column_alias_for_without_hack(*keys)
      end
    end
    alias_method_chain :column_alias_for, :hack

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
groupdate-2.4.0 lib/groupdate/active_record.rb
groupdate-2.3.0 lib/groupdate/active_record.rb
groupdate-2.2.1 lib/groupdate/active_record.rb