2012-02-05 9 views
2

Je travaille sur un projet pour créer un compilateur dans Ruby, même les compilateurs simples auront encore beaucoup de code. Je prévois d'avoir des classes comme SymbolTable, Lexer, Parser etc ....Ruby modules qui contiennent des classes

Toutes ces classes effectuent des opérations spécifiques, mais je voudrais encore les regrouper sous un espace de noms, est-il possible de le faire dans des fichiers séparés?

ex:

fichier # 1 SymbolTable.rb

module PL0Compiler 
    class SymbolTable 
    #.... 
    end 
end 

de fichier # 2 Lever.rb

module PL0Compiler 
    class Lexer 
    #.... 
    end 
end 
+0

Pourquoi pas? ....... – sawa

+0

@sawa, c'est ce que je demande? Je suis à la recherche de la façon appropriée de regrouper des classes liées dans un espace de nom, même si les classes sont dans des fichiers séparés. –

Répondre

3

Oui, il est. Mais il vous aurait fallu moins de temps pour l'essayer que pour poser, c'est donc une question étrange. Peut-être que vous ne savez pas comment y accéder? Here est un exemple plutôt élaboré.

+0

J'ai déjà imbriqué des modules dans le même fichier source ruby. Je ne savais pas si les déplacer changerait quelque chose. J'ai cherché SO mais je n'ai vu aucun exemple. –

+0

Ruby ne se soucie pas du fichier dans lequel votre code a été défini. Quand il recherche les classes/modules, il le fait en cherchant à partir de n'importe quelle classe/module que vous êtes actuellement inclus, puis du premier module spécifié et ainsi de suite dans le nid. Au premier niveau, vous êtes contenu dans Object, donc les classes n'ont pas d'importance. (Notez que l'emplacement est important dans Rails car il traite du rechargement de code et filtre vos backtraces et ainsi de suite) –

Questions connexes