 
 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Avoiding Naming Collisions with Namespaces | ||
|---|---|---|
| Code | Expected | Actual | 
| module StringTheory
  class String
    def initialize(length=10**-33)
      @length = length
    end
  end
end
String.new | "" | "" | 
| StringTheory::String.new | #<StringTheory::String:0xb7c343b8 @length=1.0e-33> | #<StringTheory::String:0xb7c343b8 @length=1.0e-33> | 
| module StringTheory2
 RubyString = String
 class String
   def initialize(length=10**-33)
     @length = length
   end
  end
  RubyString.new("This is a built-in string, not a StringTheory2::String")
end | "This is a built-in string, not a StringTheory2::String" | "This is a built-in string, not a StringTheory2::String" |