Module: Apartment

Extended by:
Forwardable
Defined in:
lib/apartment.rb,
lib/apartment/railtie.rb,
lib/apartment/version.rb,
lib/apartment/database.rb,
lib/apartment/migrator.rb,
lib/apartment/reloader.rb,
lib/apartment/elevators/domain.rb,
lib/apartment/delayed_job/hooks.rb,
lib/apartment/elevators/generic.rb,
lib/apartment/delayed_job/enqueue.rb,
lib/apartment/elevators/host_hash.rb,
lib/apartment/elevators/subdomain.rb,
lib/apartment/adapters/mysql2_adapter.rb,
lib/apartment/adapters/postgis_adapter.rb,
lib/apartment/adapters/sqlite3_adapter.rb,
lib/apartment/delayed_job/requirements.rb,
lib/apartment/adapters/abstract_adapter.rb,
lib/apartment/elevators/first_subdomain.rb,
lib/apartment/adapters/jdbc_mysql_adapter.rb,
lib/apartment/adapters/postgresql_adapter.rb,
lib/apartment/adapters/abstract_jdbc_adapter.rb,
lib/apartment/adapters/jdbc_postgresql_adapter.rb,
lib/generators/apartment/install/install_generator.rb

Defined Under Namespace

Modules: Adapters, Database, Delayed, Elevators, Migrator Classes: AdapterNotFound, ApartmentError, DJSerializationError, DatabaseExists, DatabaseNotFound, InstallGenerator, Railtie, Reloader, SchemaExists, SchemaNotFound

Constant Summary collapse

ACCESSOR_METHODS =
[:use_schemas, :seed_after_create, :prepend_environment, :append_environment]
WRITER_METHODS =
[:database_names, :database_schema_file, :excluded_models, :default_schema, :persistent_schemas, :connection_class]
VERSION =
"0.22.1"

Class Method Summary collapse

Class Method Details

.configure {|_self| ... } ⇒ Object

configure apartment with available options

Yields:

  • (_self)

Yield Parameters:

  • _self (Apartment)

    the object that the method was called on



20
21
22
# File 'lib/apartment.rb', line 20

def configure
  yield self if block_given?
end

.connection_classObject



42
43
44
# File 'lib/apartment.rb', line 42

def connection_class
  @connection_class || ActiveRecord::Base
end

.database_namesObject

Be careful not to use ‘return` here so both Proc and lambda can be used without breaking



25
26
27
# File 'lib/apartment.rb', line 25

def database_names
  @database_names.respond_to?(:call) ? @database_names.call : @database_names
end

.database_schema_fileObject



46
47
48
49
50
# File 'lib/apartment.rb', line 46

def database_schema_file
  return @database_schema_file if defined?(@database_schema_file)

  @database_schema_file = Rails.root.join('db', 'schema.rb')
end

.default_schemaObject



34
35
36
# File 'lib/apartment.rb', line 34

def default_schema
  @default_schema || "public"
end

.excluded_modelsObject

Default to empty array



30
31
32
# File 'lib/apartment.rb', line 30

def excluded_models
  @excluded_models || []
end

.persistent_schemasObject



38
39
40
# File 'lib/apartment.rb', line 38

def persistent_schemas
  @persistent_schemas || []
end

.resetObject

Reset all the config for Apartment



53
54
55
# File 'lib/apartment.rb', line 53

def reset
  (ACCESSOR_METHODS + WRITER_METHODS).each{|method| remove_instance_variable(:"@#{method}") if instance_variable_defined?(:"@#{method}") }
end

.use_postgres_schemasObject



57
58
59
60
# File 'lib/apartment.rb', line 57

def use_postgres_schemas
  warn "[Deprecation Warning] `use_postgresql_schemas` is now deprecated, please use `use_schemas`"
  use_schemas
end

.use_postgres_schemas=(to_use_or_not_to_use) ⇒ Object



62
63
64
65
# File 'lib/apartment.rb', line 62

def use_postgres_schemas=(to_use_or_not_to_use)
  warn "[Deprecation Warning] `use_postgresql_schemas=` is now deprecated, please use `use_schemas=`"
  self.use_schemas = to_use_or_not_to_use
end