Moduler kan fungere som navnerom (eng: namespace) i tillegg til multippel arv av funksjonalitet.
1| # Moduler som navnerom 2| module Text 3| class Parser ; end 4| module SGML 5| class Parser ; end 6| module HTML 7| class Parser ; end 8| end 9| module XML 10| class Parser ; end 11| end 12| end 13| end 14| 15| # Bruke skop-operatoren 16| htmlparser = Text::SGML::HTML::Parser.new 17| 18| # Åpne spesifikke navnerom 19| class Text::SGML::HTML::Parser 20| def non_breakable_space 21| " " 22| end 23| end 24| 25| # Hente inn navnerom 26| include Text::SGML 27| xmlparser = XML::Parser.new |
Du kan også bruke klasser som navnerom i de fleste tilfeller, da (Class.ancestors.include? Module) == true
,
men du kan ikke include
en klasse, da Ruby ikke har multippel arv fra klasser.