Module: LlmCostTracker::ActiveRecordAdapter
- Defined in:
- lib/llm_cost_tracker/active_record_adapter.rb
Constant Summary collapse
- MYSQL_ADAPTERS =
%w[ ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter ActiveRecord::ConnectionAdapters::Mysql2Adapter ActiveRecord::ConnectionAdapters::TrilogyAdapter ].freeze
- POSTGRESQL_ADAPTERS =
%w[ ActiveRecord::ConnectionAdapters::PostgreSQLAdapter ].freeze
- MYSQL_PATTERN =
/mysql|trilogy|mariadb/i- POSTGRESQL_PATTERN =
/postgres/i
Class Method Summary collapse
- .ensure_supported!(value) ⇒ Object
- .mysql?(value) ⇒ Boolean
- .postgresql?(value) ⇒ Boolean
- .supported?(value) ⇒ Boolean
Class Method Details
.ensure_supported!(value) ⇒ Object
27 28 29 30 31 |
# File 'lib/llm_cost_tracker/active_record_adapter.rb', line 27 def ensure_supported!(value) return if supported?(value) raise Error, "Unsupported database adapter: #{adapter_name(value)}. Use PostgreSQL or MySQL." end |
.mysql?(value) ⇒ Boolean
19 |
# File 'lib/llm_cost_tracker/active_record_adapter.rb', line 19 def mysql?(value) = adapter_instance?(value, MYSQL_ADAPTERS) || adapter_name(value).match?(MYSQL_PATTERN) |
.postgresql?(value) ⇒ Boolean
21 22 23 |
# File 'lib/llm_cost_tracker/active_record_adapter.rb', line 21 def postgresql?(value) adapter_instance?(value, POSTGRESQL_ADAPTERS) || adapter_name(value).match?(POSTGRESQL_PATTERN) end |
.supported?(value) ⇒ Boolean
25 |
# File 'lib/llm_cost_tracker/active_record_adapter.rb', line 25 def supported?(value) = mysql?(value) || postgresql?(value) |