Module: Databases::Helpers
- Included in:
- Sequel::Postgres::Bootstrap
- Defined in:
- lib/runtime/database.rb
Overview
The Databases::Helpers module
Constant Summary collapse
- MigrationMethods =
%i[down up].freeze
- NamespaceDelimiterPattern =
/::/.freeze
- DatabasePattern =
/Database/.freeze
Instance Method Summary collapse
- #class_derived_database_name ⇒ Object
- #connected_database ⇒ Object
- #connected_username ⇒ Object
- #database ⇒ Object
- #database_exist?(database_name = database) ⇒ Boolean
- #execute(sql) ⇒ Object
- #implicit_database_name ⇒ Object
- #run(sql) ⇒ Object
- #user_exist?(username = database) ⇒ Boolean
Instance Method Details
#class_derived_database_name ⇒ Object
47 48 49 |
# File 'lib/runtime/database.rb', line 47 def class_derived_database_name self.class.name.split(NamespaceDelimiterPattern).last.sub(DatabasePattern, '') end |
#connected_database ⇒ Object
84 85 86 87 |
# File 'lib/runtime/database.rb', line 84 def connected_database return nil unless Sequel::Model.db Sequel::Model.db.opts[:uri].to_s.scan(/:\/\/\w+(:\d+|\/)(\w+)/).last end |
#connected_username ⇒ Object
89 90 91 92 |
# File 'lib/runtime/database.rb', line 89 def connected_username return nil unless Sequel::Model.db Sequel::Model.db.opts[:uri].to_s.scan(/user=(\w+)/).first end |
#database ⇒ Object
61 62 63 64 |
# File 'lib/runtime/database.rb', line 61 def database # implicit_database_name underscore(Inform::Databases.instances.keys.first).to_sym end |
#database_exist?(database_name = database) ⇒ Boolean
74 75 76 77 |
# File 'lib/runtime/database.rb', line 74 def database_exist?(database_name = database) result = execute("select count(*) > 0 from pg_catalog.pg_database where datname = '#{database_name}';")&.first result&.values&.first == true end |
#execute(sql) ⇒ Object
66 67 68 |
# File 'lib/runtime/database.rb', line 66 def execute(sql) Sequel::Model.db[sql] end |
#implicit_database_name ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/runtime/database.rb', line 51 def implicit_database_name implicit_database_name = self.class.name begin implicit_database_name = underscore(demodulize(class_derived_database_name)).to_sym rescue StandardError => e log.warn "Failed to get implicit database name: #{e.}" end implicit_database_name end |
#run(sql) ⇒ Object
70 71 72 |
# File 'lib/runtime/database.rb', line 70 def run(sql) Sequel::Model.db.run(sql) end |
#user_exist?(username = database) ⇒ Boolean
79 80 81 82 |
# File 'lib/runtime/database.rb', line 79 def user_exist?(username = database) result = execute("select count(*) > 0 from pg_shadow where usename = '#{username}';")&.first result&.values&.first == true end |