Class: Whodunit::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/whodunit/generator.rb

Overview

Generator for creating Whodunit configuration files

Since:

  • 0.1.0

Constant Summary collapse

INITIALIZER_CONTENT =

Since:

  • 0.1.0

<<~RUBY
  # frozen_string_literal: true

  # Whodunit configuration
  # This file was generated by `whodunit install` command.
  # Uncomment and modify the options you want to customize.

  # Whodunit.configure do |config|
  #   config.user_class = 'Account'             # Default: 'User'
  #   config.creator_column = :created_by_id    # Default: :creator_id
  #   config.updater_column = :updated_by_id    # Default: :updater_id
  #   config.deleter_column = :deleted_by_id    # Default: :deleter_id
  #   config.soft_delete_column = :discarded_at # Default: nil
  #   config.auto_inject_whodunit_stamps = false # Default: true
  #
  #   # Column data type configuration
  #   config.column_data_type = :integer       # Default: :bigint (applies to all columns)
  #   config.creator_column_type = :string     # Default: nil (uses column_data_type)
  #   config.updater_column_type = :uuid       # Default: nil (uses column_data_type)
  #   config.deleter_column_type = :integer    # Default: nil (uses column_data_type)
  # end
RUBY

Class Method Summary collapse

Class Method Details

.help_messageObject

Since:

  • 0.1.0



84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/whodunit/generator.rb', line 84

def self.help_message
  <<~HELP
    Whodunit - Lightweight creator/updater/deleter tracking for ActiveRecord

    Usage:
      whodunit install    Generate config/initializers/whodunit.rb
      whodunit help       Show this help message

    Examples:
      whodunit install    # Creates config/initializers/whodunit.rb with sample configuration

    For more information, visit: https://github.com/kanutocd/whodunit
  HELP
end

.install_initializerObject

Since:

  • 0.1.0



31
32
33
34
35
36
37
38
39
40
# File 'lib/whodunit/generator.rb', line 31

def self.install_initializer
  config_dir = "config/initializers"
  config_file = File.join(config_dir, "whodunit.rb")

  validate_rails_application!
  ensure_config_directory_exists!(config_dir)
  handle_existing_file!(config_file)
  create_initializer_file!(config_file)
  show_success_message(config_file)
end