class ROM::AutoRegistration

AutoRegistration is used to load component files automatically from the provided directory path

@api public

Constants

DEFAULT_MAPPING
NamespaceType
PathnameType

Public Instance Methods

commands() click to toggle source

Load command files

@api private

# File lib/rom/setup/auto_registration.rb, line 64
def commands
  load_entities(:commands)
end
mappers() click to toggle source

Load mapper files

@api private

# File lib/rom/setup/auto_registration.rb, line 71
def mappers
  load_entities(:mappers)
end
relations() click to toggle source

Load relation files

@api private

# File lib/rom/setup/auto_registration.rb, line 57
def relations
  load_entities(:relations)
end

Private Instance Methods

load_entities(entity) click to toggle source

Load given component files

@api private

# File lib/rom/setup/auto_registration.rb, line 80
def load_entities(entity)
  Dir[globs[entity]].sort.map do |file|
    require file
    klass_name =
      case namespace
      when String
        AutoRegistrationStrategies::CustomNamespace.new(
          namespace: namespace, file: file, directory: directory
        ).call
      when TrueClass
        AutoRegistrationStrategies::WithNamespace.new(
          file: file, directory: directory
        ).call
      when FalseClass
        AutoRegistrationStrategies::NoNamespace.new(
          file: file, directory: directory, entity: component_dirs.fetch(entity)
        ).call
      end

    Inflector.constantize(klass_name)
  end
end