From d80a5cce88aca297ca489b90b62e2cc164c238f1 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Thu, 1 Aug 2013 11:43:11 -0700 Subject: association builder classes no longer need the model decouple the builder classes from the model. Builder objects should be easier to reuse now. --- .../lib/active_record/associations/builder/association.rb | 11 +++++------ .../associations/builder/collection_association.rb | 2 +- activerecord/test/cases/associations/extension_test.rb | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/activerecord/lib/active_record/associations/builder/association.rb b/activerecord/lib/active_record/associations/builder/association.rb index 84c340db26..926b6d21cd 100644 --- a/activerecord/lib/active_record/associations/builder/association.rb +++ b/activerecord/lib/active_record/associations/builder/association.rb @@ -20,21 +20,20 @@ module ActiveRecord::Associations::Builder self.valid_options = [:class_name, :foreign_key, :validate] self.extensions = [] - attr_reader :model, :name, :scope, :options + attr_reader :name, :scope, :options def self.build(model, name, scope, options, &block) raise ArgumentError, "association names must be a Symbol" unless name.kind_of?(Symbol) - builder = new(model, name, scope, options, &block) - reflection = builder.build + builder = new(name, scope, options, &block) + reflection = builder.build(model) builder.define_accessors model builder.define_callbacks model, reflection builder.define_extensions model reflection end - def initialize(model, name, scope, options) - @model = model + def initialize(name, scope, options) @name = name if scope.is_a?(Hash) @@ -53,7 +52,7 @@ module ActiveRecord::Associations::Builder end end - def build + def build(model) ActiveRecord::Reflection.create(macro, name, scope, options, model) end diff --git a/activerecord/lib/active_record/associations/builder/collection_association.rb b/activerecord/lib/active_record/associations/builder/collection_association.rb index fd40b320e3..bc63e18955 100644 --- a/activerecord/lib/active_record/associations/builder/collection_association.rb +++ b/activerecord/lib/active_record/associations/builder/collection_association.rb @@ -14,7 +14,7 @@ module ActiveRecord::Associations::Builder attr_reader :block_extension - def initialize(model, name, scope, options) + def initialize(name, scope, options) super @mod = nil if block_given? diff --git a/activerecord/test/cases/associations/extension_test.rb b/activerecord/test/cases/associations/extension_test.rb index 4c1fdfdd9a..47dff7d0ea 100644 --- a/activerecord/test/cases/associations/extension_test.rb +++ b/activerecord/test/cases/associations/extension_test.rb @@ -75,7 +75,7 @@ class AssociationsExtensionsTest < ActiveRecord::TestCase private def extend!(model) - builder = ActiveRecord::Associations::Builder::HasMany.new(model, :association_name, nil, {}) { } + builder = ActiveRecord::Associations::Builder::HasMany.new(:association_name, nil, {}) { } builder.define_extensions(model) end end -- cgit v1.2.3