Exemple #1
0
        public static MutableString /*!*/ Inspect(RubyContext /*!*/ context, Thread /*!*/ self)
        {
            RubyThreadInfo.RegisterThread(Thread.CurrentThread);

            MutableString result = MutableString.CreateMutable();

            result.Append("#<");
            result.Append(RubyUtils.GetClassName(context, self));
            result.Append(':');
            RubyUtils.AppendFormatHexObjectId(result, RubyUtils.GetObjectId(context, self));
            result.Append(' ');

            if ((self.ThreadState & ThreadState.WaitSleepJoin) != 0)
            {
                result.Append("sleep");
            }
            else if ((self.ThreadState & (ThreadState.Stopped | ThreadState.Aborted | ThreadState.AbortRequested)) != 0)
            {
                result.Append("dead");
            }
            else
            {
                result.Append("run");
            }

            result.Append('>');
            return(result);
        }
        public void Remember(RubyContext context, Object obj)
        {
            long objectId = RubyUtils.GetObjectId(context, obj);

            if (!_seen.Contains(objectId))
            {
                _seen.Add(objectId);
            }
        }
Exemple #3
0
        public static MutableString /*!*/ Inspect(RubyContext /*!*/ context, BigDecimal /*!*/ self)
        {
            MutableString str = MutableString.CreateMutable();

            str.AppendFormat("#<{0}:", context.GetClassOf(self).Name);
            RubyUtils.AppendFormatHexObjectId(str, RubyUtils.GetObjectId(context, self));
            str.AppendFormat(",'{0}',", self.ToString(10));
            str.AppendFormat("{0}({1})>", self.PrecisionDigits.ToString(), self.MaxPrecisionDigits.ToString());
            return(str);
        }
Exemple #4
0
            public static MutableString /*!*/ Inspect(RubyContext /*!*/ context, YamlStream /*!*/ self)
            {
                MutableString result = MutableString.CreateMutable("#<YAML::Stream:", RubyEncoding.Binary);

                RubyUtils.AppendFormatHexObjectId(result, RubyUtils.GetObjectId(context, self))
                .Append(" @documents=")
                .Append(context.Inspect(self._documents))
                .Append(", options=")
                .Append(context.Inspect(self._options))
                .Append('>');
                return(result);
            }
Exemple #5
0
            public static MutableString Inspect(RubyContext /*!*/ context, YamlStream /*!*/ self)
            {
                MutableString result = MutableString.CreateMutable("#<YAML::Stream:");

                RubyUtils.AppendFormatHexObjectId(result, RubyUtils.GetObjectId(context, self))
                .Append(" @documents=")
                .Append(RubySites.Inspect(context, self.Documents))
                .Append(", options=")
                .Append(RubySites.Inspect(context, self.Options))
                .Append('>');
                return(result);
            }
Exemple #6
0
        public static MutableString /*!*/ Inspect(RubyContext /*!*/ context, Thread /*!*/ self)
        {
            RubyThreadInfo.RegisterThread(Thread.CurrentThread);

            MutableString result = MutableString.CreateMutable(context.GetIdentifierEncoding());

            result.Append("#<");
            result.Append(context.GetClassDisplayName(self));
            result.Append(':');
            RubyUtils.AppendFormatHexObjectId(result, RubyUtils.GetObjectId(context, self));
            result.Append(' ');

            RubyThreadStatus status = GetStatus(self);

            switch (status)
            {
            case RubyThreadStatus.Unstarted:
                result.Append("unstarted");
                break;

            case RubyThreadStatus.Running:
                result.Append("run");
                break;

            case RubyThreadStatus.Sleeping:
                result.Append("sleep");
                break;

            case RubyThreadStatus.Aborting:
                result.Append("aborting");
                break;

            case RubyThreadStatus.Completed:
            case RubyThreadStatus.Aborted:
                result.Append("dead");
                break;
            }

            result.Append('>');
            return(result);
        }
 public bool Seen(RubyContext context, Object obj)
 {
     return(_seen.Contains(RubyUtils.GetObjectId(context, obj)));
 }
 public bool Forget(RubyContext context, Object obj)
 {
     return(_seen.Remove(RubyUtils.GetObjectId(context, obj)));
 }