aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/builder/association.rb
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-08-01 11:46:40 -0300
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-08-01 11:54:13 -0300
commit0f6865eb0b6a258d4a77d2182d2bd2d170fa280a (patch)
tree16c6bee4afa750316d0fe7c42469460c26480b0c /activerecord/lib/active_record/associations/builder/association.rb
parent08a6b5753ed65244c793bab455c26454ab1a1dc5 (diff)
downloadrails-0f6865eb0b6a258d4a77d2182d2bd2d170fa280a.tar.gz
rails-0f6865eb0b6a258d4a77d2182d2bd2d170fa280a.tar.bz2
rails-0f6865eb0b6a258d4a77d2182d2bd2d170fa280a.zip
Refactor dependency check validation
Move the logic for validation check to the same method, and cache dependent option in a variable to reuse inside the dependency configuration methods instead of relying on the options hash.
Diffstat (limited to 'activerecord/lib/active_record/associations/builder/association.rb')
-rw-r--r--activerecord/lib/active_record/associations/builder/association.rb17
1 files changed, 7 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/associations/builder/association.rb b/activerecord/lib/active_record/associations/builder/association.rb
index 4086485ee2..c3f32b5ed9 100644
--- a/activerecord/lib/active_record/associations/builder/association.rb
+++ b/activerecord/lib/active_record/associations/builder/association.rb
@@ -77,17 +77,14 @@ module ActiveRecord::Associations::Builder
end
end
- def print_valid_dependent_options(options)
- options.map {|s| s.to_s.insert 0, ":" }.
- to_sentence(:words_connector => ", ",
- :two_words_connector => ' or ',
- :last_word_connector => ' or ')
- end
+ def check_valid_dependent!(dependent, valid_options)
+ unless valid_options.include?(dependent)
+ valid_options_message = valid_options.map(&:inspect).to_sentence(
+ words_connector: ', ', two_words_connector: ' or ', last_word_connector: ' or ')
- def check_dependent_valid(valid_options)
- return if valid_options.include?(options[:dependent])
- raise ArgumentError, "The :dependent option expects either " \
- "#{print_valid_dependent_options(valid_options)} (#{options[:dependent].inspect})"
+ raise ArgumentError, "The :dependent option expects either " \
+ "#{valid_options_message} (#{dependent.inspect})"
+ end
end
def dependent_restrict_raises?