Module: Simple::SQL
- Extended by:
- Forwardable, SQL
- Included in:
- SQL
- Defined in:
- lib/simple/sql.rb,
lib/simple/sql/logging.rb,
lib/simple/sql/version.rb,
lib/simple/sql/fragment.rb,
lib/simple/sql/formatting.rb,
lib/simple/sql/helpers/immutable.rb,
lib/simple/sql/connection_manager.rb
Overview
The ConnectionManager manages a pool of ActiveRecord::Base classes.
ActiveRecord assigns a connection_pool to a class. If you want to connect to multiple detabases you must inherit from ActiveRecord::Base. This is what we do dynamically in this ConnectionManager.
Note that connections to the same database are always shared within a single ConnectionPool.
Defined Under Namespace
Modules: Config, ConnectionManager, Formatting, Helpers, Logging, TablePrint Classes: Connection, Fragment, Result
Constant Summary collapse
- VERSION =
"0.5.23"
Instance Method Summary collapse
-
#configuration ⇒ Object
deprecated.
-
#connect(database_url = :auto) ⇒ Object
connects to the database specified via the url parameter.
-
#connect!(database_url = :auto) ⇒ Object
connects to the database specified via the url parameter, and sets Simple::SQL’s default connection.
-
#default_connection ⇒ Object
returns the default connection.
-
#disconnect! ⇒ Object
disconnects the current default connection.
- #escape_string(s) ⇒ Object
- #fragment(str) ⇒ Object
- #table_print(records, io: STDOUT, width: :auto) ⇒ Object
- #with_connection(database_url = :auto) ⇒ Object
Instance Method Details
#configuration ⇒ Object
deprecated
62 63 64 |
# File 'lib/simple/sql.rb', line 62 def configuration Config.parse_url(Config.determine_url) end |
#connect(database_url = :auto) ⇒ Object
connects to the database specified via the url parameter. If called without argument it tries to determine a DATABASE_URL from either the environment setting (DATABASE_URL) or from a config/database.yml file, taking into account the RAILS_ENV and RACK_ENV settings.
Returns the connection object.
49 50 51 |
# File 'lib/simple/sql.rb', line 49 def connect(database_url = :auto) Connection.create(database_url) end |
#connect!(database_url = :auto) ⇒ Object
connects to the database specified via the url parameter, and sets Simple::SQL’s default connection.
see connect, default_connection
77 78 79 80 |
# File 'lib/simple/sql.rb', line 77 def connect!(database_url = :auto) disconnect! @default_connection = connect(database_url) end |
#default_connection ⇒ Object
returns the default connection.
69 70 71 |
# File 'lib/simple/sql.rb', line 69 def default_connection @default_connection ||= connect(:auto) end |
#disconnect! ⇒ Object
disconnects the current default connection.
83 84 85 86 |
# File 'lib/simple/sql.rb', line 83 def disconnect! ::Simple::SQL::ConnectionManager.disconnect_all! @default_connection = nil end |
#escape_string(s) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/simple/sql.rb', line 30 def escape_string(s) expect! s => [Symbol, String, nil] return "NULL" unless s "'#{PG::Connection.escape_string(s)}'" end |
#fragment(str) ⇒ Object
7 8 9 |
# File 'lib/simple/sql/fragment.rb', line 7 def fragment(str) Fragment.new(str) end |
#table_print(records, io: STDOUT, width: :auto) ⇒ Object
38 39 40 41 |
# File 'lib/simple/sql.rb', line 38 def table_print(records, io: STDOUT, width: :auto) ::Simple::SQL::TablePrint.table_print(records, width: width, io: io) records end |
#with_connection(database_url = :auto) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/simple/sql.rb', line 53 def with_connection(database_url = :auto) connection = connect(database_url) yield(connection) if connection ensure connection&.disconnect! end |