Class: TypedEnums::ModelScanner

Inherits:
Object
  • Object
show all
Defined in:
lib/typed_enums/model_scanner.rb

Instance Method Summary collapse

Constructor Details

#initialize(config: TypedEnums.configuration, name_builder: Naming::NameBuilder.new) ⇒ ModelScanner

Returns a new instance of ModelScanner.



7
8
9
10
# File 'lib/typed_enums/model_scanner.rb', line 7

def initialize(config: TypedEnums.configuration, name_builder: Naming::NameBuilder.new)
  @config = config
  @name_builder = name_builder
end

Instance Method Details

#callObject



12
13
14
15
16
17
18
19
20
# File 'lib/typed_enums/model_scanner.rb', line 12

def call
  eager_load_application

  enum_models.flat_map do |model|
    model.defined_enums.sort_by { |attribute_name, _values| attribute_name }.map do |attribute_name, values|
      build_definition(model:, attribute_name:, values:)
    end
  end
end