Sha256: 952723750c905f6f362475747b76d587c505c02e677b2f2d759f0d2ce139b396

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

module Outboxable
  class InstallGenerator < Rails::Generators::Base
    include Rails::Generators::Migration

    source_root File.expand_path('../../../templates', __FILE__)

    # 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"
      unless File.exist?(File.join(Rails.root, target_path))
        template("outbox.rb", target_path)
      else
        say_status('skipped', "Model outbox already exists")
      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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
outboxable-0.1.2 lib/generators/outboxable/install_generator.rb
outboxable-0.1.1 lib/generators/outboxable/install_generator.rb