class PgRls::Generators::ActiveRecordGenerator

Active Record Generator

Public Instance Methods

check_class_collision() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 14
def check_class_collision; end
convert_file_sub_name() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 88
def convert_file_sub_name
  return 'pg_rls_convert_tenant' if installation_in_progress?

  'pg_rls_convert'
end
convert_migration_template_path() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 70
def convert_migration_template_path
  return 'init_convert_migration.rb.tt' if installation_in_progress?

  'convert_migration.rb.tt'
end
convert_tenant_migration_file() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 30
def convert_tenant_migration_file
  return unless migration_exist?

  migration_template convert_migration_template_path,
                     "#{migration_path}/#{convert_file_sub_name}_#{table_name}.rb",
                     migration_version: migration_version

  return if installation_in_progress?

  migration_template 'convert_migration_backport.rb.tt',
                     "#{migration_path}/pg_rls_backport_#{table_name}.rb",
                     migration_version: migration_version
end
create_file_sub_name() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 82
def create_file_sub_name
  return 'pg_rls_create_tenant' if installation_in_progress?

  'pg_rls_create'
end
create_migration_file() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 16
def create_migration_file; end
create_migration_template_path() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 64
def create_migration_template_path
  return 'init_migration.rb.tt' if installation_in_progress?

  'migration.rb.tt'
end
create_model_file() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 44
def create_model_file
  return if migration_exist?

  generate_abstract_class if database && !parent

  template model_template_path, model_file
end
create_tenant_migration_file() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 22
def create_tenant_migration_file
  return if migration_exist?

  migration_template create_migration_template_path,
                     "#{migration_path}/#{create_file_sub_name}_#{table_name}.rb",
                     migration_version: migration_version
end
inject_method_to_model() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 52
def inject_method_to_model
  return unless installation_in_progress?

  gsub_file(model_file, /Class #{class_name} < #{parent_class_name.classify}/mi) do |match|
    "#{match}\n  def self.current\n    PgRls::Tenant.fetch\n  end\n"
  end
end
installation_in_progress?() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 94
def installation_in_progress?
  shell.base.class.name.include?('Install')
end
migration_exist?() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 18
def migration_exist?
  @migration_exist ||= Dir.glob("#{migration_path}/*create_#{table_name}.rb").present?
end
migration_path() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 102
def migration_path
  db_migrate_path
end
migration_version() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 98
def migration_version
  "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
end
model_file() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 60
def model_file
  File.join('app/models', class_path, "#{file_name}.rb")
end
model_template_path() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 76
def model_template_path
  return 'init_model.rb.tt' if installation_in_progress?

  'model.rb.tt'
end

Protected Instance Methods

migration_action() click to toggle source
# File lib/generators/pg_rls/active_record/active_record_generator.rb, line 108
  def migration_action() = 'add'
end