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

GetDisplayName() публичный Метод

public GetDisplayName ( RubyContext context, bool showEmptyName ) : MutableString
context RubyContext
showEmptyName bool
Результат MutableString
        public MutableString GetDisplayName(RubyContext/*!*/ context, bool showEmptyName) {
            if (IsSingletonClass) {
                RubyClass c = (RubyClass)this;
                object singletonOf;
                MutableString result = MutableString.CreateMutable(context.GetIdentifierEncoding());

                int nestings = 0;
                while (true) {
                    nestings++;
                    result.Append("#<Class:");

                    singletonOf = c.SingletonClassOf;

                    RubyModule module = singletonOf as RubyModule;

                    if (module == null || !module.IsSingletonClass && module.Name == null) {
                        nestings++;
                        result.Append("#<");
                        result.Append(c.SuperClass.GetName(context));
                        result.Append(':');
                        RubyUtils.AppendFormatHexObjectId(result, RubyUtils.GetObjectId(_context, singletonOf));
                        break;
                    }

                    if (!module.IsSingletonClass) {
                        result.Append(module.GetName(context));
                        break;
                    }

                    c = (RubyClass)module;
                }
                return result.Append('>', nestings);
            } else if (_name == null) {
                if (showEmptyName) {
                    return null;
                } else {
                    MutableString result = MutableString.CreateMutable(context.GetIdentifierEncoding());
                    result.Append("#<");
                    result.Append(_context.GetClassOf(this).GetName(context));
                    result.Append(':');
                    RubyUtils.AppendFormatHexObjectId(result, RubyUtils.GetObjectId(_context, this));
                    result.Append('>');
                    return result;
                }
            } else {
                return MutableString.CreateMutable(GetName(context), context.GetIdentifierEncoding());
            }
        }

Usage Example

Пример #1
0
 private void TestForAnonymous(RubyModule /*!*/ theModule)
 {
     if (theModule.Name == null)
     {
         throw RubyExceptions.CreateTypeError("can't dump anonymous {0} {1}",
                                              theModule.IsClass ? "class" : "module",
                                              theModule.GetDisplayName(_context, false)
                                              );
     }
 }
All Usage Examples Of IronRuby.Builtins.RubyModule::GetDisplayName
RubyModule