Sha256: 5d8c9bd1cdcd11ca26af39b782379ca8a6a9ec07fb99f3ed4f66b72ef81a3c5f

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

module ActiveModel::Associations
  module ActiveRecordReflection
    extend ActiveSupport::Concern

    included do
      if ActiveRecord.version.to_s >= "4.1.2"
        class_attribute :_reflections
        self._reflections = ActiveSupport::HashWithIndifferentAccess.new
      else
        class_attribute :reflections
        self.reflections = {}
      end
    end

    module ClassMethods
      if ActiveRecord.version.to_s < "4.1"
        def create_reflection(macro, name, scope, options, active_record)
          case macro
          when :has_many, :belongs_to
            klass =  ActiveRecord::Reflection::AssociationReflection
            reflection = klass.new(macro, name, scope, options, active_record)
          end

          self.reflections = self.reflections.merge(name => reflection)
          reflection
        end
      end

      def reflect_on_association(association)
        if ActiveRecord.version.to_s >= "4.1.2"
          _reflections[association.to_s]
        else
          reflections[association]
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
activemodel-associations-0.1.0 lib/active_model/associations/active_record_reflection.rb
activemodel-associations-0.0.3 lib/active_model/associations/active_record_reflection.rb