Thanks for all the helpful replies. I must say, Ruby is very cool. Here's
what I came up with:

class NodeWrapper
  def initialize(domNode)
    @domNode = domNode
  end
  
  def method_missing(methID, *args)
    property = methID.id2name
    if property[-1, 1] == '='
      if @domNode.elements(property.chop) == nil
        assert(false, property + ' is not a valid property')
      else
        @domNode.send(property, *args)
      end
    else
      @domNode.send(property, *args)
    end
  end
end

> -----Original Message-----
> From: Morris, Chris [mailto:chris.morris / snelling.com]
> Sent: Friday, October 26, 2001 12:57 PM
> To: ruby-talk / ruby-lang.org
> Subject: [ruby-talk:23481] Capture undefined method calls?
> 
> 
> I've got the following line:
> 
>   document.form.ObjectID.value = 'x'
> 
> form currently is an html dom node. What I'd like to do is 
> something like
> (psuedo code falling out all over the place):
> 
>   def form
>     # return a wrapper for the node
>     NodeWrapper.new(document.form)
>   end
> 
>   class NodeWrapper
>     def initialize(node)
>       @node = node
>     end
> 
>     def someSortOfCatchAllForUndefinedCalls(*args)
>       propName = nameOfUndefinedMethod # e.g. ObjectID
>       if @node.hasProperty(propName) 
>         @node.propName.value = args[0]
>       else
>         assert(false, 'property does not exist')
>       end
>     end
>   end
> 
> then I could simplify the initial call to:
> 
>   form.ObjectID = 'x' # maybe, haven't accounted for = sign
> 
> ... and get some additional testing code. Hmmm, well I'm not 
> sure if this
> would be that useful to me now that I've thought it through, 
> but I'm still
> curious if Ruby can do this sort of thing ... it seems like it could.
> 
> Chris
>