def direct_dependents(attribute)
      deps = send(attribute)
      case deps
        when Enumerable then deps
        when nil then Array::EMPTY_ARRAY
        else [deps]
      end
    end
def direct_dependents(attribute)
      deps = send(attribute)
      case deps
        when Enumerable then deps
        when nil then Array::EMPTY_ARRAY
        else [deps]
      end
    end
Returns the attribute references which directly depend on this owner.
 The default is the attribute value.

 Returns an Enumerable. If the value is not already an Enumerable, then this method
 returns an empty array if value is nil, or a singelton array with value otherwise.

 If there is more than one owner of a dependent, then subclasses should override this
 method to select dependents whose dependency path is shorter than an alternative
 dependency path, e.g. if a Node is owned by both a Graph and a parent
 Node. In that case, the Graph direct dependents consist of the top-level nodes
 owned by the Graph but not referenced by another Node.

 @param [Symbol] attribute the dependent attribute
 @return [<Resource>] the attribute value, wrapped in an array if necessary