From edd68a587f412ccdf15613c663acbab341d45017 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 24 Jul 2007 16:48:57 +0000 Subject: Refactored in use of extract_options! (closes #9079) [josh] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7220 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/lib/active_record/associations/association_proxy.rb | 4 ---- .../associations/has_and_belongs_to_many_association.rb | 2 +- activerecord/lib/active_record/associations/has_many_association.rb | 2 +- .../lib/active_record/associations/has_many_through_association.rb | 2 +- activerecord/lib/active_record/base.rb | 6 +----- .../connection_adapters/abstract/schema_definitions.rb | 2 +- 6 files changed, 5 insertions(+), 13 deletions(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/associations/association_proxy.rb b/activerecord/lib/active_record/associations/association_proxy.rb index 96cbd3043a..1fe1fee748 100644 --- a/activerecord/lib/active_record/associations/association_proxy.rb +++ b/activerecord/lib/active_record/associations/association_proxy.rb @@ -98,10 +98,6 @@ module ActiveRecord @reflection.klass.send(:sanitize_sql, sql) end - def extract_options_from_args!(args) - @owner.send(:extract_options_from_args!, args) - end - def set_belongs_to_association_for(record) if @reflection.options[:as] record["#{@reflection.options[:as]}_id"] = @owner.id unless @owner.new_record? diff --git a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb index b5f718ae52..d06af335ef 100644 --- a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +++ b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb @@ -29,7 +29,7 @@ module ActiveRecord end def find(*args) - options = Base.send(:extract_options_from_args!, args) + options = args.extract_options! # If using a custom finder_sql, scan the entire collection. if @reflection.options[:finder_sql] diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb index 393d59b084..838eb00863 100644 --- a/activerecord/lib/active_record/associations/has_many_association.rb +++ b/activerecord/lib/active_record/associations/has_many_association.rb @@ -38,7 +38,7 @@ module ActiveRecord end def find(*args) - options = Base.send(:extract_options_from_args!, args) + options = args.extract_options! # If using a custom finder_sql, scan the entire collection. if @reflection.options[:finder_sql] diff --git a/activerecord/lib/active_record/associations/has_many_through_association.rb b/activerecord/lib/active_record/associations/has_many_through_association.rb index 3d60da76b3..ebe1be04e5 100644 --- a/activerecord/lib/active_record/associations/has_many_through_association.rb +++ b/activerecord/lib/active_record/associations/has_many_through_association.rb @@ -9,7 +9,7 @@ module ActiveRecord end def find(*args) - options = Base.send(:extract_options_from_args!, args) + options = args.extract_options! conditions = "#{@finder_sql}" if sanitized_conditions = sanitize_sql(options[:conditions]) diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 5ab761932f..5319ec6ec2 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -421,7 +421,7 @@ module ActiveRecord #:nodoc: # person.save! # end def find(*args) - options = extract_options_from_args!(args) + options = args.extract_options! validate_find_options(options) set_readonly_option!(options) @@ -1604,10 +1604,6 @@ module ActiveRecord #:nodoc: end end - def extract_options_from_args!(args) #:nodoc: - args.last.is_a?(Hash) ? args.pop : {} - end - VALID_FIND_OPTIONS = [ :conditions, :include, :joins, :limit, :offset, :order, :select, :readonly, :group, :from, :lock ] diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb index b6c3949a5a..d4143cee3c 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb @@ -364,7 +364,7 @@ module ActiveRecord %w( string text integer float decimal datetime timestamp time date binary boolean ).each do |column_type| class_eval <<-EOV def #{column_type}(*args) - options = args.last.is_a?(Hash) ? args.pop : {} + options = args.extract_options! column_names = args column_names.each { |name| column(name, '#{column_type}', options) } -- cgit v1.2.3