class Jennifer::Config
- Jennifer::Config
- Reference
- Object
Overview
Configuration container.
At the moment it implements singleton pattern but can be scaled to support several configuration instances per application.
All class methods with same names as instance ones delegates the calls to default configuration (global) object.
Supported configurations:
migration_files_path = "./db/migrations"
verbose_migrations = true
model_files_path = "./src/models"
#structure_folder
parent folder of#migration_files_path
host = "localhost"
port = -1
logger = Log.for("db", :debug)
schema = "public"
#user
#password
#db
#adapter
pool_size = 1
retry_attempts = 1
checkout_timeout = 5.0
retry_delay = 1.0
#local_time_zone_name
default time zone nameskip_dumping_schema_sql = false
command_shell = "bash"
docker_container = ""
docker_source_location = ""
command_shell_sudo = false
migration_failure_handler_method = :none
allow_outdated_pending_migration = false
max_bind_vars_count = nil
time_zone_aware_attributes = true
Jennifer::Config.configure do |conf|
conf.host = "localhost"
conf.user = "root"
conf.password = ""
conf.adapter = "mysql"
conf.db = "crystal"
end
Defined in:
jennifer/config.crConstant Summary
-
LOG_CONTEXT =
"db"
-
Context name used for logger.
Constructors
-
.config : self
Returns default configuration object.
-
.configure : self
Returns default configuration object.
-
.instance : self
Default configuration object used by application.
- .new
-
.reset_config : Config
Reinitialize new configuration object with default values
Class Method Summary
-
.adapter
Delegates to
#adapter
. -
.adapter=(value)
Delegates to
#adapter=
. -
.allow_outdated_pending_migration
Delegates to
#allow_outdated_pending_migration
. -
.allow_outdated_pending_migration=(value)
Delegates to
#allow_outdated_pending_migration=
. -
.checkout_timeout
Delegates to
#checkout_timeout
. -
.checkout_timeout=(value)
Delegates to
#checkout_timeout=
. -
.command_shell
Delegates to
#command_shell
. -
.command_shell=(value)
Delegates to
#command_shell=
. -
.command_shell_sudo
Delegates to
#command_shell_sudo
. -
.command_shell_sudo=(value)
Delegates to
#command_shell_sudo=
. -
.configure(&)
Yields default configuration instance to block and validates it.
-
.db
Delegates to
#db
. -
.db=(value)
Delegates to
#db=
. -
.docker_container
Delegates to
#docker_container
. -
.docker_container=(value)
Delegates to
#docker_container=
. -
.docker_source_location
Delegates to
#docker_source_location
. -
.docker_source_location=(value)
Delegates to
#docker_source_location=
. -
.from_uri(uri)
Delegates call to #from_uri.
-
.host
Delegates to
#host
. -
.host=(value)
Delegates to
#host=
. -
.initial_pool_size
Delegates to
#initial_pool_size
. -
.initial_pool_size=(value)
Delegates to
#initial_pool_size=
. -
.local_time_zone
Delegates call to #local_time_zone.
-
.local_time_zone_name
Delegates to
#local_time_zone_name
. -
.local_time_zone_name=(value)
Delegates to
#local_time_zone_name=
. -
.logger
Delegates to
#:logger
. -
.logger=(value)
Delegates to
#:logger=
. -
.max_bind_vars_count
Delegates to
#:max_bind_vars_count
. -
.max_bind_vars_count=(value)
Delegates to
#:max_bind_vars_count=
. -
.max_idle_pool_size
Delegates to
#max_idle_pool_size
. -
.max_idle_pool_size=(value)
Delegates to
#max_idle_pool_size=
. -
.max_pool_size
Delegates to
#max_pool_size
. -
.max_pool_size=(value)
Delegates to
#max_pool_size=
. -
.migration_files_path
Delegates to
#migration_files_path
. -
.migration_files_path=(value)
Delegates to
#migration_files_path=
. -
.model_files_path
Delegates to
#model_files_path
. -
.model_files_path=(value)
Delegates to
#model_files_path=
. -
.password
Delegates to
#password
. -
.password=(value)
Delegates to
#password=
. -
.port
Delegates to
#port
. -
.port=(value)
Delegates to
#port=
. -
.read(*args, **opts)
Delegates call to #read.
- .read(*args, **opts, &)
-
.retry_attempts
Delegates to
#retry_attempts
. -
.retry_attempts=(value)
Delegates to
#retry_attempts=
. -
.retry_delay
Delegates to
#retry_delay
. -
.retry_delay=(value)
Delegates to
#retry_delay=
. -
.schema
Delegates to
#schema
. -
.schema=(value)
Delegates to
#schema=
. -
.skip_dumping_schema_sql
Delegates to
#skip_dumping_schema_sql
. -
.skip_dumping_schema_sql=(value)
Delegates to
#skip_dumping_schema_sql=
. -
.structure_folder
Delegates to
#structure_folder
. -
.structure_folder=(value)
Delegates to
#structure_folder=
. -
.structure_path : String
Delegates call to #structure_path.
-
.time_zone_aware_attributes
Delegates to
#time_zone_aware_attributes
. -
.time_zone_aware_attributes=(value)
Delegates to
#time_zone_aware_attributes=
. -
.user
Delegates to
#user
. -
.user=(value)
Delegates to
#user=
. -
.verbose_migrations
Delegates to
#verbose_migrations
. -
.verbose_migrations=(value)
Delegates to
#verbose_migrations=
.
Instance Method Summary
- #adapter : String
- #adapter=(adapter)
- #allow_outdated_pending_migration : Bool
- #allow_outdated_pending_migration=(allow_outdated_pending_migration)
- #checkout_timeout : Float64
- #checkout_timeout=(checkout_timeout)
- #command_shell : String
- #command_shell=(command_shell)
- #command_shell_sudo : Bool
- #command_shell_sudo=(command_shell_sudo)
- #db : String
- #db=(db)
- #docker_container : String
- #docker_container=(docker_container)
- #docker_source_location : String
- #docker_source_location=(docker_source_location)
-
#from_uri(uri : String)
Reads configuration properties from the given uri string.
-
#from_uri(uri : URI)
Reads configuration properties from the given uri.
-
#from_yaml(source)
Reads configuration properties from the given YAML source.
- #host : String
- #host=(host)
- #initial_pool_size : Int32
- #initial_pool_size=(initial_pool_size)
-
#local_time_zone : Time::Location
Returns local time zone.
- #local_time_zone_name : String
- #local_time_zone_name=(value : String)
- #local_time_zone_name=(local_time_zone_name)
-
#logger : Log
Log
instance. -
#logger=(logger : Log)
Log
instance. -
#max_bind_vars_count : Int32?
Maximum count of bind variables.
-
#max_bind_vars_count=(max_bind_vars_count : Int32?)
Maximum count of bind variables.
- #max_idle_pool_size : Int32
- #max_idle_pool_size=(max_idle_pool_size)
- #max_pool_size : Int32
- #max_pool_size=(max_pool_size)
-
#migration_failure_handler_method : Jennifer::Config::MigrationFailureHandler
Handler type for the failed migrations; default is
"none"
. - #migration_failure_handler_method=(value : MigrationFailureHandler)
- #migration_files_path : String
- #migration_files_path=(migration_files_path)
- #model_files_path : String
- #model_files_path=(model_files_path)
- #password : String
- #password=(password)
-
#pool_size
Returns maximum size of the pool.
-
#pool_size=(value : Int32)
Sets
#max_pool_size
,#max_idle_pool_size
and#initial_pool_size
to the given value. - #port : Int32
- #port=(port)
-
#read(path : String, env : Symbol = :development)
Reads configurations from the file with given path for given env.
-
#read(path : String, env : String)
Reads configurations from the file with given path for given env.
-
#read(path : String, &)
Reads configurations from the file with given path.
- #retry_attempts : Int32
- #retry_attempts=(retry_attempts)
- #retry_delay : Float64
- #retry_delay=(retry_delay)
-
#schema : String
Defines postgres database schema name (postgres specific configuration).
- #schema=(schema)
- #skip_dumping_schema_sql : Bool
- #skip_dumping_schema_sql=(skip_dumping_schema_sql)
-
#structure_folder : String
Returns
schema.sql
folder name. - #structure_folder=(structure_folder)
-
#structure_path : String
Return path to
structure.sql
file. -
#time_zone_aware_attributes : Bool
Whether Jennifer should convert time objects to UTC and back to application time zone when store/load them from a database.
- #time_zone_aware_attributes=(time_zone_aware_attributes)
- #user : String
- #user=(user)
-
#verbose_migrations : Bool
Returns whether migrations should be performed in verbose mode.
- #verbose_migrations=(verbose_migrations)
Constructor Detail
Reinitialize new configuration object with default values
Class Method Detail
Delegates to #allow_outdated_pending_migration=
.
Instance Method Detail
Reads configuration properties from the given uri string.
Jennifer::Config.from_uri("mysql://root:password@somehost:3306/some_database")
Maximum count of bind variables.
If nil
- uses default adapter value.
Maximum count of bind variables.
If nil
- uses default adapter value.
Handler type for the failed migrations; default is "none"
.
Sets #max_pool_size
, #max_idle_pool_size
and #initial_pool_size
to the given value.
Reads configurations from the file with given path for given env.
All configuration properties will be read from the env key.
Jennifer::Config.read("./db/database.yml", :production)
Reads configurations from the file with given path for given env.
All configuration properties will be read from the env key.
Jennifer::Config.read("./db/database.yml", :production)
Reads configurations from the file with given path.
It is considered that all configuration properties are located at the root level.
Whether Jennifer should convert time objects to UTC and back to application time zone when store/load them from a database.
If set to false
all time objects will be treated as local time - Time#to_local_in
will be used instead of Time#in
.
Returns whether migrations should be performed in verbose mode.
Default is true
.