Class: Tidewave::DatabaseAdapters::Sequel
- Inherits:
-
Tidewave::DatabaseAdapter
- Object
- Tidewave::DatabaseAdapter
- Tidewave::DatabaseAdapters::Sequel
- Defined in:
- lib/tidewave/database_adapters/sequel.rb
Constant Summary collapse
- RESULT_LIMIT =
50
Instance Method Summary collapse
Methods inherited from Tidewave::DatabaseAdapter
Instance Method Details
#execute_query(query, arguments = []) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/tidewave/database_adapters/sequel.rb', line 8 def execute_query(query, arguments = []) db = ::Sequel::Model.db # Execute the query with arguments result = if arguments.any? db.fetch(query, *arguments) else db.fetch(query) end # Convert to array of hashes and extract metadata rows = result.all columns = rows.first&.keys || [] # Format the result similar to ActiveRecord { columns: columns.map(&:to_s), rows: rows.first(RESULT_LIMIT).map(&:values), row_count: rows.length, adapter: db.adapter_scheme.to_s.upcase, database: db.opts[:database] } end |
#get_models ⇒ Object
32 33 34 35 |
# File 'lib/tidewave/database_adapters/sequel.rb', line 32 def get_models # Filter out anonymous Sequel models that can't be resolved as constants ::Sequel::Model.descendants.reject { |model| model.name&.start_with?("Sequel::_Model(") } end |