class DatabaseCleaner::ActiveRecord::Truncation

Public Instance Methods

clean() click to toggle source
# File lib/database_cleaner/active_record/truncation.rb, line 233
def clean
  connection = connection_class.connection
  connection.disable_referential_integrity do
    if pre_count? && connection.respond_to?(:pre_count_truncate_tables)
      connection.pre_count_truncate_tables(tables_to_truncate(connection), {:reset_ids => reset_ids?})
    else
      connection.truncate_tables(tables_to_truncate(connection))
    end
  end
end

Private Instance Methods

cache_tables?() click to toggle source
# File lib/database_cleaner/active_record/truncation.rb, line 263
def cache_tables?
  !!@cache_tables
end
migration_storage_names() click to toggle source

overwritten

# File lib/database_cleaner/active_record/truncation.rb, line 259
def migration_storage_names
  [::ActiveRecord::Migrator.schema_migrations_table_name]
end
pre_count?() click to toggle source
# File lib/database_cleaner/active_record/truncation.rb, line 267
def pre_count?
  @pre_count == true
end
reset_ids?() click to toggle source
# File lib/database_cleaner/active_record/truncation.rb, line 271
def reset_ids?
  @reset_ids != false
end
tables_to_truncate(connection) click to toggle source
# File lib/database_cleaner/active_record/truncation.rb, line 246
def tables_to_truncate(connection)
  tables_in_db = cache_tables? ? connection.database_cleaner_table_cache : connection.tables
  to_reject = (@tables_to_exclude + connection.database_cleaner_view_cache)
  (@only || tables_in_db).reject do |table|
    if ( m = table.match(/([^.]+)$/) )
      to_reject.include?(m[1])
    else
      false
    end
  end
end