Я пытаюсь написать сценарий в Ruby, который в интерактивном режиме генерирует некоторые входные данные для программы. Идея заключается в использовании QtRuby, когда она существует, в противном случае используется консоль. То, что я пробовал, - этоКак сделать Ruby частично разобрать исходный код?
begin
require "Qt4"
rescue LoadError => load_err
puts "Qt not found, using console"
end
class ConsoleDefine
# console code
end
class QtDefine < Qt::Widget
# GUI code
end
но интерпретатор отказался от моего кода, когда Qt4 не существует. есть способ иметь дело он похож на C++, как:
#ifdef QT4
class qt4gui
{
// some code
};
#else
class qt4gui
{
// dummy
};
#endif // Qt4
Исходные файлы - это только исходные файлы; вы пытались обернуть его тем, что пытается оценить что-то из рассматриваемого пакета? –
Ключевое слово 'class' в Ruby - это просто выражение * (это отличается от таких языков, как Java/C#, где это объявление). Таким образом, они могут быть вложены в другие выражения/выражения: 'if defined? Qt; class QtDefine
2013-02-11 19:12:10