Class: Framework::MigrationGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/framework/generators/migration_generator.rb

Defined Under Namespace

Classes: Context

Instance Method Summary collapse

Constructor Details

#initialize(db_name:, migration_name:) ⇒ MigrationGenerator

Returns a new instance of MigrationGenerator.

Parameters:

  • db_name (String)
  • migration_name (String)


9
10
11
12
13
14
# File 'lib/framework/generators/migration_generator.rb', line 9

def initialize(db_name: , migration_name: )
  @db_name = db_name.underscore
  @migration_name = migration_name.underscore
  @timestamp = Time.now.utc.strftime("%Y%m%d%H%M%S")
  @path = "db/migrate/#{@timestamp}_#@migration_name.rb"
end

Instance Method Details

#generateObject



16
17
18
19
20
21
22
23
# File 'lib/framework/generators/migration_generator.rb', line 16

def generate
  context = Context.new(@db_name, @migration_name).template_binding
  migration_file = File.open(@path, "w+")
  migration_file << ERB.new(template).result(context)
  migration_file.close

  p "Generated migration: #@path"
end

#templateObject



29
30
31
# File 'lib/framework/generators/migration_generator.rb', line 29

def template
  @template ||= File.read(File.join(templates_path, "migration.rb.erb"))
end

#templates_pathObject



25
26
27
# File 'lib/framework/generators/migration_generator.rb', line 25

def templates_path
  File.expand_path(File.join(File.dirname(__FILE__), '../templates'))
end