Class: DecisionAgent::Generators::VersioningMigrationGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/decision_agent/versioning_migration/versioning_migration_generator.rb

Overview

Standalone generator that installs only the versioning tables and models.

Usage:

rails generate decision_agent:versioning_migration

This is a focused alternative to the full install generator. It generates:

- db/migrate/create_decision_agent_versioning_tables.rb
- app/models/rule_version.rb
- app/models/rule_version_tag.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



24
25
26
27
# File 'lib/generators/decision_agent/versioning_migration/versioning_migration_generator.rb', line 24

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

Instance Method Details

#copy_migrationObject



29
30
31
32
33
# File 'lib/generators/decision_agent/versioning_migration/versioning_migration_generator.rb', line 29

def copy_migration
  migration_template "versioning_migration.rb",
                     "db/migrate/create_decision_agent_versioning_tables.rb",
                     migration_version: migration_version
end

#copy_modelsObject



35
36
37
38
# File 'lib/generators/decision_agent/versioning_migration/versioning_migration_generator.rb', line 35

def copy_models
  copy_file "rule_version.rb",     "app/models/rule_version.rb"
  copy_file "rule_version_tag.rb", "app/models/rule_version_tag.rb"
end

#show_readmeObject



40
41
42
43
44
45
46
47
48
# File 'lib/generators/decision_agent/versioning_migration/versioning_migration_generator.rb', line 40

def show_readme
  say "\n"
  say "DecisionAgent versioning tables generated successfully!", :green
  say "\nNext steps:"
  say "  1. Run migrations:      rails db:migrate"
  say "  2. Verify models:       RuleVersion, RuleVersionTag"
  say "  3. Use the adapter:     DecisionAgent::Versioning::ActiveRecordAdapter.new"
  say "\nSee docs/VERSIONING.md for configuration and usage examples."
end