Class: Roda::Project::Bin::Generators::Migration
- Inherits:
-
Roda::Project::Bin::Generator
- Object
- Generator
- Roda::Project::Bin::Generator
- Roda::Project::Bin::Generators::Migration
- Defined in:
- lib/roda/project/bin/generators/migration.rb
Instance Method Summary collapse
Methods inherited from Roda::Project::Bin::Generator
Methods inherited from Generator
Methods included from Helpers::Ids
#api_id, #fullstack_id, #id_to_string, #minimal_id, #minitest_id, #mysql_id, #postgresql_id, #rspec_id, #sqlite_id
Methods included from Helpers::Template
#cp_dir, #cp_file, #erb_cp_dir, #erb_cp_file, #templates_root
Constructor Details
This class inherits a constructor from Roda::Project::Generator
Instance Method Details
#call ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/roda/project/bin/generators/migration.rb', line 6 def call if migration_name.nil? || migration_name.empty? puts "Usage: bin/roda g migration your_migration_name" exit 1 end FileUtils.mkdir_p(migrations_path) unless File.directory?(migrations_path) existing_migrations = Dir.glob(File.join(migrations_path, "*.rb")) max_number = existing_migrations.map do |file| File.basename(file).match(/^(\d+)/)&.captures&.first.to_i end.max || 0 next_number = (max_number + 1).to_s.rjust(3, "0") filename = File.join(migrations_path, "#{next_number}_#{migration_name}.rb") content = <<~RUBY Sequel.migration do up do # add your migration here end down do # remove your migration here end end RUBY File.write(filename, content) puts "* created migration: #{filename}" end |
#migration_name ⇒ Object
42 43 44 |
# File 'lib/roda/project/bin/generators/migration.rb', line 42 def migration_name @migration_name ||= @args[0] end |
#migrations_path ⇒ Object
38 39 40 |
# File 'lib/roda/project/bin/generators/migration.rb', line 38 def migrations_path "db/migrations" end |