I am new ruby usrs (and loving it) and have a question.

By "requiring" opne-uri into my source file I can now reference "http"
addresses as they were local files.  It seems that open-uri "hooks"
into the Kernel.open method.

I am just wondering what aspect of the ruby language allows you to do
this.  Or is there some mechanism inside of the Kernel that allows you
to register a different protocol?

thanks in advance,  scott.