Module: Legion::Data::Connection
- Defined in:
- lib/legion/data/connection.rb
Constant Summary collapse
- ADAPTERS =
%i[sqlite mysql2 postgres].freeze
Class Attribute Summary collapse
-
.sequel ⇒ Object
Returns the value of attribute sequel.
Class Method Summary collapse
Class Attribute Details
.sequel ⇒ Object
Returns the value of attribute sequel.
11 12 13 |
# File 'lib/legion/data/connection.rb', line 11 def sequel @sequel end |
Class Method Details
.adapter ⇒ Object
13 14 15 |
# File 'lib/legion/data/connection.rb', line 13 def adapter @adapter ||= Legion::Settings[:data][:adapter]&.to_sym || :sqlite end |
.creds_builder(final_creds = {}) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/legion/data/connection.rb', line 44 def creds_builder(final_creds = {}) final_creds.merge! Legion::Data::Settings.creds(adapter) final_creds.merge! Legion::Settings[:data][:creds] if Legion::Settings[:data][:creds].is_a? Hash return final_creds if Legion::Settings[:vault].nil? if Legion::Settings[:vault][:connected] && ::Vault.sys.mounts.key?(:database) temp_vault_creds = Legion::Crypt.read('database/creds/legion') final_creds[:user] = temp_vault_creds[:username] final_creds[:password] = temp_vault_creds[:password] end final_creds end |
.setup ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/legion/data/connection.rb', line 17 def setup @sequel = if adapter == :sqlite ::Sequel.sqlite(sqlite_path) else begin ::Sequel.connect(adapter: adapter, **creds_builder) rescue StandardError => e raise unless dev_fallback? if defined?(Legion::Logging) Legion::Logging.warn( "Shared DB unreachable (#{e.}), dev_mode fallback to SQLite" ) end @adapter = :sqlite ::Sequel.sqlite(sqlite_path) end end Legion::Settings[:data][:connected] = true configure_logging end |
.shutdown ⇒ Object
39 40 41 42 |
# File 'lib/legion/data/connection.rb', line 39 def shutdown @sequel&.disconnect Legion::Settings[:data][:connected] = false end |