I happen to be working in a sandboxed Ruby environment and have been trying to add libraries to it with mixed results. However, it has raised some interesting questions about how Ruby works. I'm looking to understand how Ruby links libraries and how it decides what to load when it starts up.

What is going on when I do a

```
require 'someLib/someClass'

```

I have required .rb files before but the behavior is different with libs.
How does a require work if it looks like it is requiring a directory like in

```
require 'DL'

```

How does it know what files to load and how is that name 'DL' registered in the interpreter?

P.S.: The only exposed part of Ruby I have to work with right now is 'msvcrt-ruby18.dll'