class ROM::Setup

Setup objects collect component classes during setup/finalization process

@api public

Attributes

command_classes[R]

@return [Array] registered command subclasses

@api private

mapper_classes[R]

@return [Array] registered mapper subclasses

@api private

notifications[R]

@api private

plugins[R]

@api private

relation_classes[R]

@return [Array] registered relation subclasses

@api private

Public Class Methods

new(notifications) click to toggle source

@api private

# File lib/rom/setup.rb, line 32
def initialize(notifications)
  @relation_classes = []
  @command_classes = []
  @mapper_classes = []
  @plugins = []
  @notifications = notifications
end

Public Instance Methods

auto_registration(directory, **options) click to toggle source

Enable auto-registration for a given setup object

@param [String, Pathname] directory The root path to components @param [Hash] options @option options [Boolean, String] :namespace Enable/disable namespace or provide a custom namespace name

@return [Setup]

@api public

# File lib/rom/setup.rb, line 49
def auto_registration(directory, **options)
  auto_registration = AutoRegistration.new(directory, **options)
  auto_registration.relations.map { |r| register_relation(r) }
  auto_registration.commands.map { |r| register_command(r) }
  auto_registration.mappers.map { |r| register_mapper(r) }
  self
end
register_command(*klasses) click to toggle source

Command sub-classes are being registered with this method during setup

@api private

# File lib/rom/setup.rb, line 74
def register_command(*klasses)
  klasses.reduce(@command_classes, :<<)
end
register_mapper(*klasses) click to toggle source

Mapper sub-classes are being registered with this method during setup

@api private

# File lib/rom/setup.rb, line 67
def register_mapper(*klasses)
  klasses.reduce(@mapper_classes, :<<)
end
register_plugin(plugin) click to toggle source

@api private

# File lib/rom/setup.rb, line 79
def register_plugin(plugin)
  plugins << plugin
end
register_relation(*klasses) click to toggle source

Relation sub-classes are being registered with this method during setup

@api private

# File lib/rom/setup.rb, line 60
def register_relation(*klasses)
  klasses.reduce(@relation_classes, :<<)
end