IronRuby.Builtins.RubyModule.IncludeLibraryModule C# (CSharp) Метод

IncludeLibraryModule() приватный Метод

private IncludeLibraryModule ( Action instanceTrait, Action classTrait, Action constantsInitializer, RubyModule mixins, bool builtin ) : void
instanceTrait Action
classTrait Action
constantsInitializer Action
mixins RubyModule
builtin bool
Результат void
        internal void IncludeLibraryModule(Action<RubyModule> instanceTrait, Action<RubyModule> classTrait, Action<RubyModule> constantsInitializer, 
            RubyModule/*!*/[]/*!*/ mixins, bool builtin) {

            // Do not allow non-builtin library inclusions to a frozen module.
            // We need to ensure that initializers are not modified once a module is frozen.
            if (!builtin) {
                Mutate();
            }

            using (Context.ClassHierarchyLocker()) {
                if (instanceTrait != null) {
                    IncludeTraitNoLock(ref _methodsInitializer, _methodsState, instanceTrait);
                }

                if (constantsInitializer != null) {
                    IncludeTraitNoLock(ref _constantsInitializer, _constantsState, constantsInitializer);
                }

                if (classTrait != null) {
                    var singleton = GetOrCreateSingletonClass();
                    singleton.IncludeTraitNoLock(ref singleton._methodsInitializer, singleton._methodsState, classTrait);
                }
                    
                // updates the module version:
                IncludeModulesNoLock(mixins);
            }
        }
RubyModule