Class: MigrationCollapser::FileReplacer

Inherits:
Object
  • Object
show all
Defined in:
lib/migration_collapser/file_replacer.rb

Constant Summary collapse

PATTERN =
/(\d+)\_.+\.rb/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(revision) ⇒ FileReplacer

Returns a new instance of FileReplacer.



5
6
7
# File 'lib/migration_collapser/file_replacer.rb', line 5

def initialize(revision)
  self.revision = revision
end

Instance Attribute Details

#revisionObject

Returns the value of attribute revision.



9
10
11
# File 'lib/migration_collapser/file_replacer.rb', line 9

def revision
  @revision
end

Instance Method Details

#create_migrationObject



33
34
35
# File 'lib/migration_collapser/file_replacer.rb', line 33

def create_migration
  cp "templates/initial_schema_migration.rb", "db/migrate/#{revision}_initial_schema.rb"
end

#delete_filesObject



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/migration_collapser/file_replacer.rb', line 20

def delete_files
  files = Dir.glob("db/migrate/*.rb")
  file_map = new_migration_map(files)

  check_files(file_map)

  file_map.each do |file, number|
    if number <= revision
      FileUtils.rm(file)
    end
  end
end

#replaceObject



15
16
17
18
# File 'lib/migration_collapser/file_replacer.rb', line 15

def replace
  delete_files
  create_migration
end