class ReactiveObservers::DatabaseAdapters::Factory
Public Class Methods
new(configuration)
click to toggle source
# File lib/reactive_observers/database_adapters/factory.rb, line 8 def initialize(configuration) @configuration = configuration end
Public Instance Methods
initialize_observer_listeners()
click to toggle source
# File lib/reactive_observers/database_adapters/factory.rb, line 12 def initialize_observer_listeners collect_database_adapters.each do |database_adapter, klasses| case database_adapter when 'PostgreSQL' PostgreSQLAdapter.new(@configuration, klasses).start_listening when 'PostGIS' PostgreSQLAdapter.new(@configuration, klasses).start_listening else raise StandardError, "Reactive observers cannot be run with this database adapter: #{database_adapter}!" end end end
Private Instance Methods
collect_database_adapters()
click to toggle source
# File lib/reactive_observers/database_adapters/factory.rb, line 27 def collect_database_adapters {}.tap do |result| @configuration.observed_tables.map do |observed_table| klass = observed_table.to_s.classify.constantize adapter = klass.connection.adapter_name result[adapter] = (result[adapter] || []) << klass end end end