Module: Apartment

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/subdomain.rb,
lib/apartment/adapters/mysql2_adapter.rb,
lib/apartment/delayed_job/requirements.rb,
lib/apartment/adapters/abstract_adapter.rb,
lib/apartment/elevators/first_subdomain.rb,
lib/apartment/adapters/postgresql_adapter.rb,
lib/apartment/sidekiq/client/database_middleware.rb,
lib/apartment/sidekiq/server/database_middleware.rb,
lib/generators/apartment/install/install_generator.rb

Defined Under Namespace

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

Constant Summary collapse

ACCESSOR_METHODS =
[:use_postgres_schemas, :seed_after_create, :prepend_environment]
WRITER_METHODS =
[:database_names, :excluded_models, :default_schema, :persistent_schemas]
VERSION =
"0.17.2"

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



13
14
15
# File 'lib/apartment.rb', line 13

def configure
  yield self if block_given?
end

.database_namesObject

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



23
24
25
# File 'lib/apartment.rb', line 23

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

.default_schemaObject



32
33
34
# File 'lib/apartment.rb', line 32

def default_schema
  @default_schema || "public"
end

.excluded_modelsObject

Default to empty array



28
29
30
# File 'lib/apartment.rb', line 28

def excluded_models
  @excluded_models || []
end

.persistent_schemasObject



36
37
38
# File 'lib/apartment.rb', line 36

def persistent_schemas
  @persistent_schemas || []
end

.resetObject

Reset all the config for Apartment



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

def reset
  (ACCESSOR_METHODS + WRITER_METHODS).each{|method| instance_variable_set(:"@#{method}", nil) }
end

.schema_to_switchObject

Default switch schema to public



18
19
20
# File 'lib/apartment.rb', line 18

def schema_to_switch
  @schema_to_switch || "public"
end