@@ -157,6 +157,33 @@ static String getLogicalValue(RubyObject object, String type, Heap heap) {
157157 FieldValue encodingField = object .getFieldValue ("encoding (hidden)" ); // NOI18N
158158 Instance encoding = encodingField instanceof ObjectFieldValue ? ((ObjectFieldValue )encodingField ).getInstance () : null ;
159159 if (encoding != null ) logicalValue = DetailsUtils .getInstanceString (encoding , heap );
160+ } else if ("Integer" .equals (type )) { // NOI18N
161+ FieldValue valueField = object .getFieldValue ("value (hidden)" ); // NOI18N
162+ Instance value = valueField instanceof ObjectFieldValue ? ((ObjectFieldValue )valueField ).getInstance () : null ;
163+ if (value != null ) logicalValue = DetailsUtils .getInstanceString (value , heap );
164+ } else if ("Rational" .equals (type )) { // NOI18N
165+ FieldValue numField = object .getFieldValue ("@numerator" ); // NOI18N
166+ Instance numerator = numField instanceof ObjectFieldValue ? ((ObjectFieldValue )numField ).getInstance () : null ;
167+ FieldValue denomField = object .getFieldValue ("@denominator" ); // NOI18N
168+ Instance denominator = denomField instanceof ObjectFieldValue ? ((ObjectFieldValue )denomField ).getInstance () : null ;
169+ if (numField != null && denomField != null ) {
170+ String numeratorValue ;
171+ String denominatorValue ;
172+
173+ if (numerator != null ) {
174+ numeratorValue = DetailsUtils .getInstanceString (numerator , heap );
175+ } else {
176+ numeratorValue = numField .getValue ();
177+ }
178+ if (denominator != null ) {
179+ denominatorValue = DetailsUtils .getInstanceString (denominator , heap );
180+ } else {
181+ denominatorValue = denomField .getValue ();
182+ }
183+ if (numeratorValue != null && denominatorValue != null ) {
184+ logicalValue = "(" +numeratorValue +"/" +denominatorValue +")" ;
185+ }
186+ }
160187 }
161188
162189 if (logicalValue != null && logicalValue .length () > MAX_LOGVALUE_LENGTH )
0 commit comments