Class: RailsLens::ModelSourceLoader
- Inherits:
-
Object
- Object
- RailsLens::ModelSourceLoader
- Defined in:
- lib/rails_lens/model_source_loader.rb
Overview
Discovers and loads model sources from gems Gems can register sources in two ways:
-
Define GemName::RailsLensModelSource (auto-discovery)
-
Call RailsLens::ModelSourceLoader.register(SourceClass) explicitly
Class Method Summary collapse
-
.list_sources ⇒ Array<Hash>
List all loaded sources (for debugging/info).
-
.load_sources ⇒ Array<Class>
Load all available model sources.
-
.register(source) ⇒ Object
Register a model source explicitly Use this when gem naming doesn’t follow conventions.
Class Method Details
.list_sources ⇒ Array<Hash>
List all loaded sources (for debugging/info)
43 44 45 46 47 48 49 50 51 |
# File 'lib/rails_lens/model_source_loader.rb', line 43 def list_sources load_sources.map do |source| { name: source.source_name, class: source.name, patterns: source.file_patterns } end end |
.load_sources ⇒ Array<Class>
Load all available model sources
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rails_lens/model_source_loader.rb', line 24 def load_sources sources = [] # Always include ActiveRecord source first sources << ModelSources::ActiveRecordSource # Include explicitly registered sources @registered_sources ||= [] sources.concat(@registered_sources) # Load gem-provided sources via auto-discovery if enabled sources.concat(load_gem_sources) if config_enabled? # Deduplicate in case a source was both registered and auto-discovered sources.uniq end |
.register(source) ⇒ Object
Register a model source explicitly Use this when gem naming doesn’t follow conventions
15 16 17 18 19 20 |
# File 'lib/rails_lens/model_source_loader.rb', line 15 def register(source) return unless valid_source?(source) @registered_sources ||= [] @registered_sources << source unless @registered_sources.include?(source) end |