2012-02-05 3 views
2

Я работаю над проектом по созданию компилятора в Ruby, даже простые компиляторы будут по-прежнему иметь много кода. Я планирую иметь классы как SymbolTable, Lexer, Parser и т.д ....Модули Ruby, содержащие классы

Все эти классы выполняют определенные операции, но я все же хотел бы сгруппировать их по одному пространству имен, можно сделать это в отдельных файлах?

например:

Файл № 1 SymbolTable.rb

module PL0Compiler 
    class SymbolTable 
    #.... 
    end 
end 

File # 2 Lever.rb

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

Почему нет? ....... – sawa

+0

@sawa, Thats, что я прошу? Я ищу подходящий способ группировать связанные классы в 1 пространство имен, даже если классы находятся в отдельных файлах. –

ответ

3

Да, это так. Но вам потребовалось бы меньше времени, чтобы попробовать, чем задавать, так что это странный вопрос. Может быть, вы не знаете, как получить к нему доступ? Here - довольно сложный пример.

+0

У меня есть вложенные модули ранее в том же исходном рубиновом файле. Я не был уверен, что их перемещение изменит что-нибудь. Я искал SO, но не видел никаких примеров. –

+0

Ruby не заботится о том, в каком файле был определен ваш код. Когда он просматривает классы/модули, он делает это путем поиска из любого класса/модуля, в котором вы сейчас находитесь, а затем из первого указанного вами модуля и так что вниз по гнезду. На верхнем уровне вы находитесь внутри Object, поэтому классы не имеют значения. (обратите внимание, что местоположение имеет значение в Rails, поскольку оно связано с перезагрузкой кода и фильтрует ваши обратные трассы и т. д.) –

Смежные вопросы