Sha256: d38ac3fcbb1fc822202b43ae7850a324cd995f4ae6a2d32ff57762b9145731c9

Contents?: true

Size: 1.08 KB

Versions: 6

Compression:

Stored size: 1.08 KB

Contents

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

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

    module ClassMethods
      if ActiveRecord.version < Gem::Version.new("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 >= Gem::Version.new("4.1.2")
          _reflections[association.to_s]
        else
          reflections[association]
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
eac_rails_utils-0.20.0 lib/active_model/associations/active_record_reflection.rb
activemodel-associations-0.2.0 lib/active_model/associations/active_record_reflection.rb
activemodel-associations-0.2.0.beta2 lib/active_model/associations/active_record_reflection.rb
activemodel-associations-0.2.0.beta1 lib/active_model/associations/active_record_reflection.rb
activemodel-associations-0.1.2 lib/active_model/associations/active_record_reflection.rb
activemodel-associations-0.1.1 lib/active_model/associations/active_record_reflection.rb