From c3439457e3926685bdc5e893637449cb3cf992cd Mon Sep 17 00:00:00 2001 From: Hector Satre Date: Thu, 1 May 2014 08:16:33 +0200 Subject: Give real privacy to class methods in AR::PredicateBuilder --- activerecord/CHANGELOG.md | 4 ++++ .../lib/active_record/relation/predicate_builder.rb | 15 ++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 17b71199aa..7568773aad 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,7 @@ +* Give ActiveRecord::PredicateBuilder private methods the privacy they deserve + + *Hector Satre* + * When using a custom `join_table` name on a `habtm`, rails was not saving it on Reflections. This causes a problem when rails loads fixtures, because it uses the reflections to set database with fixtures. diff --git a/activerecord/lib/active_record/relation/predicate_builder.rb b/activerecord/lib/active_record/relation/predicate_builder.rb index 1252af7635..d40f276968 100644 --- a/activerecord/lib/active_record/relation/predicate_builder.rb +++ b/activerecord/lib/active_record/relation/predicate_builder.rb @@ -113,13 +113,14 @@ module ActiveRecord register_handler(Relation, RelationHandler.new) register_handler(Array, ArrayHandler.new) - private - def self.build(attribute, value) - handler_for(value).call(attribute, value) - end + def self.build(attribute, value) + handler_for(value).call(attribute, value) + end + private_class_method :build - def self.handler_for(object) - @handlers.detect { |klass, _| klass === object }.last - end + def self.handler_for(object) + @handlers.detect { |klass, _| klass === object }.last + end + private_class_method :handler_for end end -- cgit v1.2.3