mirror of
https://github.com/ditkrg/outboxable.git
synced 2026-01-22 13:56:49 +00:00
Uses respective orm templates
This commit is contained in:
parent
daf9b980ea
commit
64c23f9796
@ -3,24 +3,37 @@ module Outboxable
|
||||
include Rails::Generators::Migration
|
||||
|
||||
source_root File.expand_path('../../templates', __dir__)
|
||||
class_option :orm, type: :string, default: 'activerecord'
|
||||
|
||||
def initialize
|
||||
super
|
||||
|
||||
@orm = options[:orm] || 'activerecord'
|
||||
%w[activerecord mongoid].include?(@orm) || raise(ArgumentError, 'Invalid ORM. Only ActiveRecord and Mongoid are supported.')
|
||||
end
|
||||
|
||||
# Copy initializer into user app
|
||||
def copy_initializer
|
||||
copy_file('initializer.rb', 'config/initializers/z_outboxable.rb')
|
||||
copy_file('activerecod_initializer.rb', 'config/initializers/z_outboxable.rb') if @orm == 'activerecord'
|
||||
copy_file('mongoid_initializer.rb', 'config/initializers/z_outboxable.rb') if @orm == 'mongoid'
|
||||
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)
|
||||
template('activerecrod_outbox.rb', target_path) if @orm == 'activerecord'
|
||||
template('mongoid_outbox.rb', target_path) if @orm == 'mongoid'
|
||||
end
|
||||
end
|
||||
|
||||
# Copy migrations
|
||||
def copy_migrations
|
||||
return if @orm == 'mongoid'
|
||||
|
||||
if self.class.migration_exists?('db/migrate', 'create_outboxable_outboxes')
|
||||
say_status('skipped', 'Migration create_outboxable_outboxes already exists')
|
||||
else
|
||||
|
||||
Loading…
Reference in New Issue
Block a user