Skip to content

Commit

Permalink
Remove Array.wrap calls in ActiveRecord
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaelfranca committed Jan 6, 2012
1 parent 2a663dc commit 2958a1e
Show file tree
Hide file tree
Showing 13 changed files with 18 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def initialize(association)

def scope
scope = klass.unscoped
scope = scope.extending(*Array.wrap(options[:extend]))
scope = scope.extending(*Array(options[:extend]))

# It's okay to just apply all these like this. The options will only be present if the
# association supports that option; this is enforced by the association builder.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def writable?
private

def wrap_block_extension
options[:extend] = Array.wrap(options[:extend])
options[:extend] = Array(options[:extend])

if block_extension
silence_warnings do
Expand All @@ -51,7 +51,7 @@ def define_callback(callback_name)

# TODO : why do i need method_defined? I think its because of the inheritance chain
model.class_attribute full_callback_name.to_sym unless model.method_defined?(full_callback_name)
model.send("#{full_callback_name}=", Array.wrap(options[callback_name.to_sym]))
model.send("#{full_callback_name}=", Array(options[callback_name.to_sym]))
end

def define_readers
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
require 'active_support/core_ext/array/wrap'

module ActiveRecord
module Associations
# = Active Record Association Collection
Expand Down Expand Up @@ -67,7 +65,7 @@ def ids_reader
# Implements the ids writer method, e.g. foo.item_ids= for Foo.has_many :items
def ids_writer(ids)
pk_column = reflection.primary_key_column
ids = Array.wrap(ids).reject { |id| id.blank? }
ids = Array(ids).reject { |id| id.blank? }
ids.map! { |i| pk_column.type_cast(i) }
replace(klass.find(ids).index_by { |r| r.id }.values_at(*ids))
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class CollectionProxy # :nodoc:

def initialize(association)
@association = association
Array.wrap(association.options[:extend]).each { |ext| proxy_extend(ext) }
Array(association.options[:extend]).each { |ext| proxy_extend(ext) }
end

alias_method :new, :build
Expand Down
2 changes: 0 additions & 2 deletions activerecord/lib/active_record/autosave_association.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
require 'active_support/core_ext/array/wrap'

module ActiveRecord
# = Active Record Autosave Association
#
Expand Down
2 changes: 0 additions & 2 deletions activerecord/lib/active_record/callbacks.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
require 'active_support/core_ext/array/wrap'

module ActiveRecord
# = Active Record Callbacks
#
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
require 'active_support/core_ext/array/wrap'
require 'active_support/deprecation/reporting'

module ActiveRecord
Expand Down Expand Up @@ -42,7 +41,7 @@ def table_exists?(table_name)
# # Check an index with a custom name exists
# index_exists?(:suppliers, :company_id, :name => "idx_company_id"
def index_exists?(table_name, column_name, options = {})
column_names = Array.wrap(column_name)
column_names = Array(column_name)
index_name = options.key?(:name) ? options[:name].to_s : index_name(table_name, :column => column_names)
if options[:unique]
indexes(table_name).any?{ |i| i.unique && i.name == index_name }
Expand Down Expand Up @@ -377,7 +376,7 @@ def rename_index(table_name, old_name, new_name)
def index_name(table_name, options) #:nodoc:
if Hash === options # legacy support
if options[:column]
"index_#{table_name}_on_#{Array.wrap(options[:column]) * '_and_'}"
"index_#{table_name}_on_#{Array(options[:column]) * '_and_'}"
elsif options[:name]
options[:name]
else
Expand Down Expand Up @@ -436,7 +435,7 @@ def initialize_schema_migrations_table
end

def assume_migrated_upto_version(version, migrations_paths = ActiveRecord::Migrator.migrations_paths)
migrations_paths = Array.wrap(migrations_paths)
migrations_paths = Array(migrations_paths)
version = version.to_i
sm_table = quote_table_name(ActiveRecord::Migrator.schema_migrations_table_name)

Expand Down Expand Up @@ -551,7 +550,7 @@ def options_include_default?(options)
end

def add_index_options(table_name, column_name, options = {})
column_names = Array.wrap(column_name)
column_names = Array(column_name)
index_name = index_name(table_name, :column => column_names)

if Hash === options # legacy support, since this param was a string
Expand Down
3 changes: 1 addition & 2 deletions activerecord/lib/active_record/fixtures.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
require 'yaml'
require 'zlib'
require 'active_support/dependencies'
require 'active_support/core_ext/array/wrap'
require 'active_support/core_ext/object/blank'
require 'active_support/ordered_hash'
require 'active_record/fixtures/file'
Expand Down Expand Up @@ -783,7 +782,7 @@ def require_fixture_classes(fixture_names = nil)
end

def setup_fixture_accessors(fixture_names = nil)
fixture_names = Array.wrap(fixture_names || fixture_table_names)
fixture_names = Array(fixture_names || fixture_table_names)
methods = Module.new do
fixture_names.each do |fixture_name|
fixture_name = fixture_name.to_s
Expand Down
5 changes: 2 additions & 3 deletions activerecord/lib/active_record/migration.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
require "active_support/core_ext/module/delegation"
require "active_support/core_ext/class/attribute_accessors"
require "active_support/core_ext/array/wrap"

module ActiveRecord
# Exception that can be raised to stop migrations from going backwards.
Expand Down Expand Up @@ -587,15 +586,15 @@ def proper_table_name(name)
def migrations_paths
@migrations_paths ||= ['db/migrate']
# just to not break things if someone uses: migration_path = some_string
Array.wrap(@migrations_paths)
Array(@migrations_paths)
end

def migrations_path
migrations_paths.first
end

def migrations(paths, subdirectories = true)
paths = Array.wrap(paths)
paths = Array(paths)

glob = subdirectories ? "**/" : ""
files = Dir[*paths.map { |p| "#{p}/#{glob}[0-9]*_*.rb" }]
Expand Down
4 changes: 2 additions & 2 deletions activerecord/lib/active_record/serialization.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ module Serialization
def serializable_hash(options = nil)
options = options.try(:clone) || {}

options[:except] = Array.wrap(options[:except]).map { |n| n.to_s }
options[:except] |= Array.wrap(self.class.inheritance_column)
options[:except] = Array(options[:except]).map { |n| n.to_s }
options[:except] |= Array(self.class.inheritance_column)

super(options)
end
Expand Down
3 changes: 1 addition & 2 deletions activerecord/lib/active_record/serializers/xml_serializer.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
require 'active_support/core_ext/array/wrap'
require 'active_support/core_ext/hash/conversions'

module ActiveRecord #:nodoc:
Expand Down Expand Up @@ -179,7 +178,7 @@ def to_xml(options = {}, &block)
class XmlSerializer < ActiveModel::Serializers::Xml::Serializer #:nodoc:
def initialize(*args)
super
options[:except] = Array.wrap(options[:except]) | Array.wrap(@serializable.class.inheritance_column)
options[:except] = Array(options[:except]) | Array(@serializable.class.inheritance_column)
end

class Attribute < ActiveModel::Serializers::Xml::Serializer::Attribute #:nodoc:
Expand Down
4 changes: 2 additions & 2 deletions activerecord/lib/active_record/transactions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ def transaction(options = {}, &block)
def after_commit(*args, &block)
options = args.last
if options.is_a?(Hash) && options[:on]
options[:if] = Array.wrap(options[:if])
options[:if] = Array(options[:if])
options[:if] << "transaction_include_action?(:#{options[:on]})"
end
set_callback(:commit, :after, *args, &block)
Expand All @@ -220,7 +220,7 @@ def after_commit(*args, &block)
def after_rollback(*args, &block)
options = args.last
if options.is_a?(Hash) && options[:on]
options[:if] = Array.wrap(options[:if])
options[:if] = Array(options[:if])
options[:if] << "transaction_include_action?(:#{options[:on]})"
end
set_callback(:rollback, :after, *args, &block)
Expand Down
4 changes: 1 addition & 3 deletions activerecord/lib/active_record/validations/uniqueness.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
require 'active_support/core_ext/array/wrap'

module ActiveRecord
module Validations
class UniquenessValidator < ActiveModel::EachValidator
Expand All @@ -25,7 +23,7 @@ def validate_each(record, attribute, value)
relation = build_relation(finder_class, table, attribute, value)
relation = relation.and(table[finder_class.primary_key.to_sym].not_eq(record.send(:id))) if record.persisted?

Array.wrap(options[:scope]).each do |scope_item|
Array(options[:scope]).each do |scope_item|
scope_value = record.send(scope_item)
relation = relation.and(table[scope_item].eq(scope_value))
end
Expand Down

0 comments on commit 2958a1e

Please sign in to comment.