class PaperTrailAssociationTracking::InstallGenerator

Installs PaperTrail in a rails app.

Constants

MYSQL_ADAPTERS

Class names of MySQL adapters.

  • `MysqlAdapter` - Used by gems: `mysql`, `activerecord-jdbcmysql-adapter`.

  • `Mysql2Adapter` - Used by `mysql2` gem.

Public Class Methods

next_migration_number(dirname) click to toggle source
# File lib/generators/paper_trail_association_tracking/install_generator.rb, line 36
def self.next_migration_number(dirname)
  ::ActiveRecord::Generators::Base.next_migration_number(dirname)
end

Public Instance Methods

create_initializer() click to toggle source
# File lib/generators/paper_trail_association_tracking/install_generator.rb, line 28
def create_initializer
  create_file(
    "config/initializers/paper_trail.rb",
    "PaperTrail.config.track_associations = true\n",
    "PaperTrail.config.association_reify_error_behaviour = :error"
  )
end
create_migrations() click to toggle source
# File lib/generators/paper_trail_association_tracking/install_generator.rb, line 23
def create_migrations
  add_paper_trail_migration("create_version_associations")
  add_paper_trail_migration("add_transaction_id_column_to_versions")
end

Protected Instance Methods

add_paper_trail_migration(template) click to toggle source
# File lib/generators/paper_trail_association_tracking/install_generator.rb, line 42
def add_paper_trail_migration(template)
  migration_dir = File.expand_path("db/migrate")
  if self.class.migration_exists?(migration_dir, template)
    ::Kernel.warn "Migration already exists: #{template}"
  else
    migration_template(
      "#{template}.rb.erb",
      "db/migrate/#{template}.rb",
      migration_version: migration_version
    )
  end
end

Private Instance Methods

migration_version() click to toggle source
# File lib/generators/paper_trail_association_tracking/install_generator.rb, line 57
def migration_version
  "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
end