Class: Migsupo::Generator::MigrationGenerator
- Inherits:
-
Object
- Object
- Migsupo::Generator::MigrationGenerator
- Defined in:
- lib/migsupo/generator/migration_generator.rb
Instance Method Summary collapse
- #generate(diff, output_dir:, dry_run: false) ⇒ Object
-
#initialize(rails_version: nil) ⇒ MigrationGenerator
constructor
A new instance of MigrationGenerator.
Constructor Details
#initialize(rails_version: nil) ⇒ MigrationGenerator
Returns a new instance of MigrationGenerator.
9 10 11 12 |
# File 'lib/migsupo/generator/migration_generator.rb', line 9 def initialize(rails_version: nil) @rails_version = rails_version @builder = MigrationBuilder.new(rails_version: rails_version) end |
Instance Method Details
#generate(diff, output_dir:, dry_run: false) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/migsupo/generator/migration_generator.rb', line 14 def generate(diff, output_dir:, dry_run: false) return [] if diff.empty? base_ts = groups = group_operations(diff.operations) files = [] groups.each_with_index do |ops, i| class_name = Naming.class_name(ops) = (base_ts + i).to_s file_name = Naming.file_name(timestamp: , class_name: class_name) content = @builder.build(ops, class_name: class_name) if dry_run puts "# #{file_name}" puts content puts else file_path = File.join(output_dir, file_name) File.write(file_path, content) files << file_path end end files end |