Next Previous Contents

7. Design og strukturering

7.1 Navnerom og moduler

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.


Next Previous Contents