Sha256: 15a0d665f682a9204110f689db7825229e35bf7142e67e7a7535e6095dab9c58

Contents?: true

Size: 1.26 KB

Versions: 21

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

require 'rails/generators'

module Eventsimple
  module Generators
    class EventGenerator < Rails::Generators::Base
      include Rails::Generators::Migration

      desc "Generate Outbox Table Migration"
      source_root File.expand_path("templates", __dir__)

      argument :model_name, type: :string

      def self.next_migration_number(dirname)
        next_migration_number = current_migration_number(dirname) + 1
        ActiveRecord::Migration.next_migration_number(next_migration_number)
      end

      def copy_migrations
        migration_template "create_events.erb",
          "db/migrate/create_#{model_name.underscore}_events.rb",
          migration_version: migration_version

        template "event.erb",
          "app/models/#{model_name.underscore}_event.rb"

        line = "class #{model_name.camelize} < ApplicationRecord"
        gsub_file "app/models/#{model_name.underscore}.rb", /(#{Regexp.escape(line)})/mi do |match|
          <<~RUBY
            #{match}\n  extend Eventsimple::Entity
              event_driven_by #{model_name.camelize}Event, aggregate_id: :id
          RUBY
        end
      end

      def migration_version
        "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
eventsimple-1.5.6 lib/eventsimple/generators/install_generator.rb
eventsimple-1.5.5 lib/eventsimple/generators/install_generator.rb
eventsimple-1.5.4 lib/eventsimple/generators/install_generator.rb
eventsimple-1.5.3 lib/eventsimple/generators/install_generator.rb
eventsimple-1.4.3 lib/eventsimple/generators/install_generator.rb
eventsimple-1.4.2 lib/eventsimple/generators/install_generator.rb
eventsimple-1.4.1 lib/eventsimple/generators/install_generator.rb
eventsimple-1.4.0 lib/eventsimple/generators/install_generator.rb
eventsimple-1.3.3 lib/eventsimple/generators/install_generator.rb
eventsimple-1.3.2 lib/eventsimple/generators/install_generator.rb
eventsimple-1.3.1 lib/eventsimple/generators/install_generator.rb
eventsimple-1.3.0 lib/eventsimple/generators/install_generator.rb
eventsimple-1.2.3 lib/eventsimple/generators/install_generator.rb
eventsimple-1.2.2 lib/eventsimple/generators/install_generator.rb
eventsimple-1.2.1 lib/eventsimple/generators/install_generator.rb
eventsimple-1.2.0 lib/eventsimple/generators/install_generator.rb
eventsimple-1.1.3 lib/eventsimple/generators/install_generator.rb
eventsimple-1.1.2 lib/eventsimple/generators/install_generator.rb
eventsimple-1.1.1 lib/eventsimple/generators/install_generator.rb
eventsimple-1.1.0 lib/eventsimple/generators/install_generator.rb