Module: IronAdmin::Adapters::Registry
- Defined in:
- lib/iron_admin/adapters/registry.rb
Overview
Lazily loads and resolves adapter classes by identifier.
Adapters are loaded on demand to avoid requiring unnecessary ORM dependencies. ActiveRecord apps never load Mongoid code and vice versa.
Constant Summary collapse
- ADAPTERS =
{ active_record: { require_path: "iron_admin/adapters/active_record", class_name: "IronAdmin::Adapters::ActiveRecord", }, mongoid: { require_path: "iron_admin/adapters/mongoid", class_name: "IronAdmin::Adapters::Mongoid", }, http: { require_path: "iron_admin/adapters/http", class_name: "IronAdmin::Adapters::Http", }, }.freeze
Class Method Summary collapse
-
.resolve(identifier) ⇒ Class
Resolves an adapter identifier to its class.
Class Method Details
.resolve(identifier) ⇒ Class
Resolves an adapter identifier to its class.
37 38 39 40 41 |
# File 'lib/iron_admin/adapters/registry.rb', line 37 def self.resolve(identifier) entry = ADAPTERS.fetch(identifier) { raise ArgumentError, "Unknown adapter: #{identifier}" } require entry[:require_path] entry[:class_name].constantize end |