class ROM::Setup
Setup
objects collect component classes during setup/finalization process
@api public
Attributes
@return [Array] registered command subclasses
@api private
@return [Array] registered mapper subclasses
@api private
@api private
@api private
@return [Array] registered relation subclasses
@api private
Public Class Methods
@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
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
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
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
@api private
# File lib/rom/setup.rb, line 79 def register_plugin(plugin) plugins << plugin end
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