public RubyModule TryResolveClassVariable(string/*!*/ name, out object value) {
Assert.NotNull(name);
RubyModule result = null;
object constValue = null;
using (Context.ClassHierarchyLocker()) {
if (ForEachAncestor(delegate(RubyModule/*!*/ module) {
if (module._classVariables != null && module._classVariables.TryGetValue(name, out constValue)) {
result = module;
return true;
}
return false;
})) {
value = constValue;
return result;
}
}
value = null;
return null;
}