lib/polyamorous.rb in polyamorous-0.6.4 vs lib/polyamorous.rb in polyamorous-1.0.0
- old
+ new
@@ -1,26 +1,33 @@
require "polyamorous/version"
-require 'active_record'
-module Polyamorous
- if defined?(::ActiveRecord::Associations::JoinDependency)
- JoinDependency = ::ActiveRecord::Associations::JoinDependency
- JoinAssociation = ::ActiveRecord::Associations::JoinDependency::JoinAssociation
- JoinBase = ::ActiveRecord::Associations::JoinDependency::JoinBase
- else
- JoinDependency = ::ActiveRecord::Associations::ClassMethods::JoinDependency
- JoinAssociation = ::ActiveRecord::Associations::ClassMethods::JoinDependency::JoinAssociation
- JoinBase = ::ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase
+if defined?(::ActiveRecord)
+ module Polyamorous
+ if defined?(::ActiveRecord::Associations::JoinDependency)
+ JoinDependency = ::ActiveRecord::Associations::JoinDependency
+ JoinAssociation = ::ActiveRecord::Associations::JoinDependency::JoinAssociation
+ JoinBase = ::ActiveRecord::Associations::JoinDependency::JoinBase
+ else
+ JoinDependency = ::ActiveRecord::Associations::ClassMethods::JoinDependency
+ JoinAssociation = ::ActiveRecord::Associations::ClassMethods::JoinDependency::JoinAssociation
+ JoinBase = ::ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase
+ end
end
-end
-require 'polyamorous/join'
-require 'polyamorous/join_association'
-require 'polyamorous/join_dependency'
+ require 'polyamorous/join'
-Polyamorous::JoinDependency.send(:include, Polyamorous::JoinDependencyExtensions)
-Polyamorous::JoinAssociation.send(:include, Polyamorous::JoinAssociationExtensions)
-Polyamorous::JoinBase.class_eval do
- if method_defined?(:active_record)
- alias_method :base_klass, :active_record
+ if ActiveRecord::VERSION::STRING >= "4.1"
+ require 'polyamorous/activerecord_4.1/join_association'
+ require 'polyamorous/activerecord_4.1/join_dependency'
+ else
+ require 'polyamorous/activerecord_3_and_4.0/join_association'
+ require 'polyamorous/activerecord_3_and_4.0/join_dependency'
+ end
+
+ Polyamorous::JoinDependency.send(:include, Polyamorous::JoinDependencyExtensions)
+ Polyamorous::JoinAssociation.send(:include, Polyamorous::JoinAssociationExtensions)
+ Polyamorous::JoinBase.class_eval do
+ if method_defined?(:active_record)
+ alias_method :base_klass, :active_record
+ end
end
end