Class: Dbviewer::Database::DynamicModelFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/dbviewer/database/dynamic_model_factory.rb

Overview

DynamicModelFactory creates and manages ActiveRecord models for database tables

Instance Method Summary collapse

Constructor Details

#initialize(connection, cache_manager, metadata_manager) ⇒ DynamicModelFactory

Initialize with a connection, cache manager, and metadata manager



8
9
10
11
12
# File 'lib/dbviewer/database/dynamic_model_factory.rb', line 8

def initialize(connection, cache_manager, )
  @connection = connection
  @cache_manager = cache_manager
   = 
end

Instance Method Details

#get_model_for(table_name) ⇒ Class

Get or create an ActiveRecord model for a table



17
18
19
20
21
22
# File 'lib/dbviewer/database/dynamic_model_factory.rb', line 17

def get_model_for(table_name)
  # Cache models for shorter time since they might need refreshing more frequently
  @cache_manager.fetch("model-#{table_name}", expires_in: 300) do
    find_or_create_model_for(table_name)
  end
end