ActiveResource#load question

In ActiveResource#load we see:

attributes.each do |key, value|
  @attributes[key.to_s] =
  case value
    when Array

To test whether to do recursive resource loading of the attribute.

I am seeing some situations where this construct thinks that an
attribute which is a long string as matches the case Array#=== and it
ends up trying to instantiate a attribute that isn't an object.
Changing the case to check value.class, i.e:

  case value.class

fixes the problem. Anybody have any insight into what's going on here?