From: Phlip Date: 2009-04-06T00:05:00+09:00 Subject: Re: Loading classes in order >> Imagining a very complex case it could occur that class_A defined in file_A >> depends on class_C defined in file_C, and class_C depends on class_B >> defined in file_B. Ruby can't require the classes so strictly. C++ could, and maybe Java could. But a Duck Typing language simply cannot require that! A given implementation of that design might have some mistake that forces the require order, but the mistake itself is always fixable. For example, don't include this above your first require 'test/unit': module Test::Unit::Assertions def test_my_awesome_assertion end end The fix is very simple: module Test; module Unit; module Assertions def test_my_awesome_assertion end end; end; end Now that can harmlessly appear above the original module Assertions.