Method: AnnotateModels.get_loaded_model
- Defined in:
- lib/annotate/annotate_models.rb
.get_loaded_model(model_path, file) ⇒ Object
Retrieve loaded model class
601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 |
# File 'lib/annotate/annotate_models.rb', line 601 def get_loaded_model(model_path, file) unless skip_subdirectory_model_load loaded_model_class = get_loaded_model_by_path(model_path) return loaded_model_class if loaded_model_class end # We cannot get loaded model when `model_path` is loaded by Rails # auto_load/eager_load paths. Try all possible model paths one by one. absolute_file = File.(file) model_paths = $LOAD_PATH.map(&:to_s) .select { |path| absolute_file.include?(path) } .map { |path| absolute_file.sub(path, '').sub(/\.rb$/, '').sub(/^\//, '') } model_paths .map { |path| get_loaded_model_by_path(path) } .find { |loaded_model| !loaded_model.nil? } end |