class DataMigrate::StatusService
Public Class Methods
dump(connection = ActiveRecord::Base.connection, stream = STDOUT)
click to toggle source
# File lib/data_migrate/status_service.rb, line 4 def dump(connection = ActiveRecord::Base.connection, stream = STDOUT) new(connection).dump(stream) stream end
new(connection)
click to toggle source
# File lib/data_migrate/status_service.rb, line 10 def initialize(connection) @connection = connection end
Public Instance Methods
dump(stream)
click to toggle source
# File lib/data_migrate/status_service.rb, line 18 def dump(stream) unless @connection.table_exists?(table_name) stream.puts "Data migrations table does not exist yet." return end sql = "SELECT version FROM #{DataMigrate::DataMigrator.schema_migrations_table_name}" db_list = ActiveRecord::Base.connection.select_values(sql) output(stream, db_list) end
root_folder()
click to toggle source
# File lib/data_migrate/status_service.rb, line 14 def root_folder Rails.root end
Private Instance Methods
db_list()
click to toggle source
# File lib/data_migrate/status_service_five.rb, line 44 def db_list DataMigrate::DataMigrator.migrations_status end
migration_files(db_list)
click to toggle source
# File lib/data_migrate/status_service.rb, line 53 def migration_files(db_list) file_list = [] Dir.foreach(File.join(root_folder, DataMigrate.config.data_migrations_path)) do |file| # only files matching "20091231235959_some_name.rb" pattern if match_data = DataMigrate::DataMigrator.match(file) status = db_list.delete(match_data[1]) ? "up" : "down" file_list << [status, match_data[1], match_data[2].humanize] end end file_list end
migration_list(db_list)
click to toggle source
# File lib/data_migrate/status_service.rb, line 45 def migration_list(db_list) list = [] db_list.each do |version| list << ["up", version, "********** NO FILE *************"] end list end
output(stream, db_list)
click to toggle source
# File lib/data_migrate/status_service.rb, line 34 def output(stream, db_list) stream.puts "#{"Status".center(8)} #{"Migration ID".ljust(14)} Migration Name" stream.puts "-" * 50 list = migration_files(db_list) + migration_list(db_list) list.sort! {|line1, line2| line1[1] <=> line2[1]} list.each do |file| stream.puts "#{file[0].center(8)} #{file[1].ljust(14)} #{file[2]}" end stream.puts end
table_name()
click to toggle source
# File lib/data_migrate/status_service.rb, line 30 def table_name DataMigrate::DataMigrator.schema_migrations_table_name end