Class: Rails::Schema::Extractor::Mongoid::ModelScanner

Inherits:
Object
  • Object
show all
Defined in:
lib/rails/schema/extractor/mongoid/model_scanner.rb

Instance Method Summary collapse

Constructor Details

#initialize(configuration: ::Rails::Schema.configuration) ⇒ ModelScanner

Returns a new instance of ModelScanner.



8
9
10
# File 'lib/rails/schema/extractor/mongoid/model_scanner.rb', line 8

def initialize(configuration: ::Rails::Schema.configuration)
  @configuration = configuration
end

Instance Method Details

#scanObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rails/schema/extractor/mongoid/model_scanner.rb', line 12

def scan
  eager_load_models!

  candidates = ObjectSpace.each_object(Class).select do |klass|
    klass.include?(::Mongoid::Document)
  rescue StandardError
    false
  end

  named = candidates.reject { |m| m.name.nil? }
  included = named.reject { |m| excluded?(m) }

  included.sort_by(&:name)
end