Class: GeoMasterJp::Generators::InstallMigrationGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/geo_master_jp/install_migration_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



13
14
15
# File 'lib/generators/geo_master_jp/install_migration_generator.rb', line 13

def self.next_migration_number(dirname)
  ::ActiveRecord::Generators::Base.next_migration_number(dirname)
end

Instance Method Details

#create_migration_fileObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/generators/geo_master_jp/install_migration_generator.rb', line 17

def create_migration_file
  templates = ['create_versions']
  if GeoMasterJp.config.use_models.include?(:area)
    templates += ['create_prefectures', 'create_cities', 'create_towns']
  end
  if GeoMasterJp.config.use_models.include?(:railway)
    templates += ['create_prefectures', 'create_cities', 'create_towns', 'create_railway_companies', 'create_lines', 'create_stations', 'create_station_connections']
  end
  if GeoMasterJp.config.use_models.include?(:area) && GeoMasterJp.config.use_models.include?(:railway)
    templates += ['create_prefectures_lines']
  end

  migration_dir = File.expand_path("db/migrate")
  templates.each do |template|
    if self.class.migration_exists?(migration_dir, template)
      ::Kernel.warn "Migration already exists: #{template}"
    else
      migration_template(
        "#{template}.rb.erb",
        "db/migrate/#{template}.rb",
        migration_version: migration_version
      )
    end
  end
end