Class: Rooq::Configuration
- Inherits:
-
Object
- Object
- Rooq::Configuration
- Defined in:
- lib/rooq/configuration.rb
Overview
Configuration holds all settings for a Rooq context. Configurations are immutable - use #derive to create modified copies.
Inspired by jOOQ's Configuration class.
Instance Attribute Summary collapse
-
#connection_provider ⇒ Object
readonly
Returns the value of attribute connection_provider.
-
#dialect ⇒ Object
readonly
Returns the value of attribute dialect.
Class Method Summary collapse
-
.from_connection(connection, dialect: nil) ⇒ Configuration
Create a new configuration from a single connection.
-
.from_pool(pool, dialect: nil) ⇒ Configuration
Create a new configuration from a connection pool.
Instance Method Summary collapse
-
#derive(connection_provider: nil, dialect: nil) ⇒ Configuration
Create a derived configuration with some settings overridden.
-
#initialize(connection_provider: nil, dialect: nil) ⇒ Configuration
constructor
Create a new configuration.
Constructor Details
#initialize(connection_provider: nil, dialect: nil) ⇒ Configuration
Create a new configuration.
15 16 17 18 19 |
# File 'lib/rooq/configuration.rb', line 15 def initialize(connection_provider: nil, dialect: nil) @connection_provider = connection_provider @dialect = dialect || Dialect::PostgreSQL.new freeze end |
Instance Attribute Details
#connection_provider ⇒ Object (readonly)
Returns the value of attribute connection_provider.
10 11 12 |
# File 'lib/rooq/configuration.rb', line 10 def connection_provider @connection_provider end |
#dialect ⇒ Object (readonly)
Returns the value of attribute dialect.
10 11 12 |
# File 'lib/rooq/configuration.rb', line 10 def dialect @dialect end |
Class Method Details
.from_connection(connection, dialect: nil) ⇒ Configuration
Create a new configuration from a single connection. The connection lifecycle is managed externally.
26 27 28 29 30 31 |
# File 'lib/rooq/configuration.rb', line 26 def self.from_connection(connection, dialect: nil) new( connection_provider: DefaultConnectionProvider.new(connection), dialect: dialect ) end |
.from_pool(pool, dialect: nil) ⇒ Configuration
Create a new configuration from a connection pool. Connections are acquired and released per query.
38 39 40 41 42 43 |
# File 'lib/rooq/configuration.rb', line 38 def self.from_pool(pool, dialect: nil) new( connection_provider: PooledConnectionProvider.new(pool), dialect: dialect ) end |
Instance Method Details
#derive(connection_provider: nil, dialect: nil) ⇒ Configuration
Create a derived configuration with some settings overridden.
49 50 51 52 53 54 |
# File 'lib/rooq/configuration.rb', line 49 def derive(connection_provider: nil, dialect: nil) Configuration.new( connection_provider: connection_provider || @connection_provider, dialect: dialect || @dialect ) end |