Class: Rails::Schema::Extractor::ModelScanner
- Inherits:
-
Object
- Object
- Rails::Schema::Extractor::ModelScanner
- Defined in:
- lib/rails/schema/extractor/model_scanner.rb
Instance Method Summary collapse
-
#initialize(configuration: ::Rails::Schema.configuration, schema_data: nil) ⇒ ModelScanner
constructor
A new instance of ModelScanner.
- #scan ⇒ Object
Constructor Details
#initialize(configuration: ::Rails::Schema.configuration, schema_data: nil) ⇒ ModelScanner
Returns a new instance of ModelScanner.
7 8 9 10 |
# File 'lib/rails/schema/extractor/model_scanner.rb', line 7 def initialize(configuration: ::Rails::Schema.configuration, schema_data: nil) @configuration = configuration @schema_data = schema_data.nil? || schema_data.empty? ? nil : schema_data end |
Instance Method Details
#scan ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/rails/schema/extractor/model_scanner.rb', line 12 def scan eager_load_models! all_descendants = ActiveRecord::Base.descendants non_abstract = all_descendants.reject(&:abstract_class?) named = non_abstract.reject { |m| m.name.nil? } with_tables = named.select { |m| table_known?(m) } included = with_tables.reject { |m| excluded?(m) } log_empty_scan(all_descendants, non_abstract, named, with_tables) if included.empty? included.sort_by(&:name) end |