Class: QuickCount::Adapters::Factory
- Inherits:
-
Object
- Object
- QuickCount::Adapters::Factory
- Defined in:
- lib/quick_count/adapters/factory.rb
Constant Summary collapse
- ADAPTERS =
[Postgresql, Mysql].freeze
Class Method Summary collapse
Class Method Details
.create(connection:) ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/quick_count/adapters/factory.rb', line 9 def self.create(connection:) adapter_class = detect_adapter(connection) unless adapter_class raise UnsupportedDatabaseError, "Unsupported database: #{connection.adapter_name}" end adapter_class.new(connection: connection) end |
.detect_adapter(connection) ⇒ Object
19 20 21 |
# File 'lib/quick_count/adapters/factory.rb', line 19 def self.detect_adapter(connection) ADAPTERS.find { |adapter_class| adapter_class.new(connection: connection).supported? } end |
.supported_databases ⇒ Object
23 24 25 26 27 |
# File 'lib/quick_count/adapters/factory.rb', line 23 def self.supported_databases ADAPTERS.map do |adapter_class| adapter_class.name.split('::').last.downcase end end |