Class: JetstreamBridge::Generators::MigrationsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/jetstream_bridge/migrations/migrations_generator.rb

Overview

Migrations generator.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object

– Rails::Generators::Migration plumbing –



30
31
32
33
34
35
36
37
# File 'lib/generators/jetstream_bridge/migrations/migrations_generator.rb', line 30

def self.next_migration_number(dirname)
  return format('%.3d', current_migration_number(dirname) + 1) unless timestamped_migrations?

  current_timestamp = Time.now.utc.strftime('%Y%m%d%H%M%S').to_i
  last_migration = current_migration_number(dirname) + 1

  [current_timestamp, last_migration].max.to_s
end

.timestamped_migrations?Boolean

Returns:

  • (Boolean)


39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/generators/jetstream_bridge/migrations/migrations_generator.rb', line 39

def self.timestamped_migrations?
  # Prefer the Rails application configuration which is available
  # without hitting ActiveRecord's dynamic matchers (that would raise
  # when no connection is established).
  if defined?(::Rails) &&
     ::Rails.respond_to?(:application) &&
     ::Rails.application &&
     ::Rails.application.config.respond_to?(:active_record)
    ar_config = ::Rails.application.config.active_record
    return ar_config.timestamped_migrations if ar_config.respond_to?(:timestamped_migrations)
  end

  true
end

Instance Method Details

#create_inbox_migrationObject



22
23
24
25
26
27
# File 'lib/generators/jetstream_bridge/migrations/migrations_generator.rb', line 22

def create_inbox_migration
  name = 'create_jetstream_inbox_events'
  return say_status :skip, "migration #{name} already exists", :yellow if migration_exists?('db/migrate', name)

  migration_template 'create_jetstream_inbox_events.rb.erb', "db/migrate/#{name}.rb"
end

#create_outbox_migrationObject



15
16
17
18
19
20
# File 'lib/generators/jetstream_bridge/migrations/migrations_generator.rb', line 15

def create_outbox_migration
  name = 'create_jetstream_outbox_events'
  return say_status :skip, "migration #{name} already exists", :yellow if migration_exists?('db/migrate', name)

  migration_template 'create_jetstream_outbox_events.rb.erb', "db/migrate/#{name}.rb"
end