mirror of
https://github.com/ditkrg/outboxable.git
synced 2026-01-22 13:56:49 +00:00
37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
module Outboxable
|
|
class InstallGenerator < Rails::Generators::Base
|
|
include Rails::Generators::Migration
|
|
|
|
source_root File.expand_path('../../templates', __dir__)
|
|
|
|
# Copy initializer into user app
|
|
def copy_initializer
|
|
copy_file('initializer.rb', 'config/initializers/z_outboxable.rb')
|
|
end
|
|
|
|
# Copy user information (model & Migrations) into user app
|
|
def create_user_model
|
|
target_path = 'app/models/outbox.rb'
|
|
if Rails.root.join(target_path).exist?
|
|
say_status('skipped', 'Model outbox already exists')
|
|
else
|
|
template('outbox.rb', target_path)
|
|
end
|
|
end
|
|
|
|
# Copy migrations
|
|
def copy_migrations
|
|
if self.class.migration_exists?('db/migrate', 'create_outboxable_outboxes')
|
|
say_status('skipped', 'Migration create_outboxable_outboxes already exists')
|
|
else
|
|
migration_template('create_outboxable_outboxes.rb', 'db/migrate/create_outboxable_outboxes.rb')
|
|
end
|
|
end
|
|
|
|
# Use to assign migration time otherwise generator will error
|
|
def self.next_migration_number(_dir)
|
|
Time.now.utc.strftime('%Y%m%d%H%M%S')
|
|
end
|
|
end
|
|
end
|