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