diff options
author | Viktar Basharymau <viktar.basharymau@thehamon.com> | 2014-06-26 14:03:54 +0300 |
---|---|---|
committer | Viktar Basharymau <viktar.basharymau@thehamon.com> | 2014-06-27 17:46:48 +0300 |
commit | c4918eefdf94320b3a1263f90456f290bd89a723 (patch) | |
tree | c949ca98eda96d45235c7b3b1ff68c331baa5d6c /activerecord/lib/active_record | |
parent | 5dbf37d04f705d4b309d8a9afab9bd49a1aa9c1b (diff) | |
download | rails-c4918eefdf94320b3a1263f90456f290bd89a723.tar.gz rails-c4918eefdf94320b3a1263f90456f290bd89a723.tar.bz2 rails-c4918eefdf94320b3a1263f90456f290bd89a723.zip |
Use Array#flat_map and Array#grep in db:migrate:status task
It allows the code to be more declarative and elegant.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/railties/databases.rake | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/activerecord/lib/active_record/railties/databases.rake b/activerecord/lib/active_record/railties/databases.rake index 64aa046c16..fb890ed709 100644 --- a/activerecord/lib/active_record/railties/databases.rake +++ b/activerecord/lib/active_record/railties/databases.rake @@ -98,17 +98,17 @@ db_namespace = namespace :db do end db_list = ActiveRecord::Base.connection.select_values("SELECT version FROM #{ActiveRecord::Migrator.schema_migrations_table_name}") db_list.map! { |version| ActiveRecord::SchemaMigration.normalize_migration_number(version) } - file_list = [] - ActiveRecord::Migrator.migrations_paths.each do |path| - Dir.foreach(path) do |file| - # match "20091231235959_some_name.rb" and "001_some_name.rb" pattern - if match_data = /^(\d{3,})_(.+)\.rb$/.match(file) - version = ActiveRecord::SchemaMigration.normalize_migration_number(match_data[1]) - status = db_list.delete(version) ? 'up' : 'down' - file_list << [status, version, match_data[2].humanize] + + file_list = + ActiveRecord::Migrator.migrations_paths.flat_map do |path| + # match "20091231235959_some_name.rb" and "001_some_name.rb" pattern + Dir.foreach(path).grep(/^(\d{3,})_(.+)\.rb$/) do + version = ActiveRecord::SchemaMigration.normalize_migration_number($1) + status = db_list.delete(version) ? 'up' : 'down' + [status, version, $2.humanize] + end end - end - end + db_list.map! do |version| ['up', version, '********** NO FILE **********'] end |