Permalink
Browse files

Stop showing deprecations for Ruby 1.8.7 with remove_column

String is Enumerable in 1.8.7, which means that passing a String to
remove_column was generating deprecation warnings during tests.
  • Loading branch information...
1 parent cb242a9 commit fa34acec20574699c2de19d97f9ae54f540fe69d @carlosantoniodasilva carlosantoniodasilva committed May 9, 2012
@@ -269,13 +269,15 @@ def add_column(table_name, column_name, type, options = {})
# remove_column(:suppliers, :qualification)
# remove_columns(:suppliers, :qualification, :experience)
def remove_column(table_name, *column_names)
- if column_names.first.kind_of?(Enumerable)
+ if column_names.flatten!
message = 'Passing array to remove_columns is deprecated, please use ' +
'multiple arguments, like: `remove_columns(:posts, :foo, :bar)`'
ActiveSupport::Deprecation.warn message, caller
end
- columns_for_remove(table_name, *column_names).each {|column_name| execute "ALTER TABLE #{quote_table_name(table_name)} DROP #{column_name}" }
+ columns_for_remove(table_name, *column_names).each do |column_name|
+ execute "ALTER TABLE #{quote_table_name(table_name)} DROP #{column_name}"
+ end
end
alias :remove_columns :remove_column
@@ -408,13 +408,13 @@ def add_column(table_name, column_name, type, options = {}) #:nodoc:
def remove_column(table_name, *column_names) #:nodoc:
raise ArgumentError.new("You must specify at least one column name. Example: remove_column(:people, :first_name)") if column_names.empty?
- if column_names.first.kind_of?(Enumerable)
+ if column_names.flatten!
message = 'Passing array to remove_columns is deprecated, please use ' +
'multiple arguments, like: `remove_columns(:posts, :foo, :bar)`'
ActiveSupport::Deprecation.warn message, caller
end
- column_names.flatten.each do |column_name|
+ column_names.each do |column_name|
alter_table(table_name) do |definition|
definition.columns.delete(definition[column_name])
end

0 comments on commit fa34ace

Please sign in to comment.