如何让Ruby部分解析源代码?

时间:2013-02-11 19:08:26

标签: ruby

我正在尝试在Ruby中编写一个脚本,它以交互方式为程序生成一些输入数据。这个想法是在它存在时使用QtRuby,否则使用控制台。我试过的是

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

2 个答案:

答案 0 :(得分:4)

使用require对您有利:

begin
  require "Qt4"
  require "my_lib/qt4"
rescue LoadError => load_err
  puts "Qt not found, using console"
  require "my_lib/console"
end

创建两个文件:

# my_lib/console.rb
class ConsoleDefine
  # console code
end

# my_lib/qt4.rb
class QtDefine < Qt::Widget
  # GUI code
end

答案 1 :(得分:1)

正如@pst所说,你不需要Ruby中的预处理器,因为它是动态的。所以:

begin
  require "Qt4"
   class QtDefine < Qt::Widget
     # GUI code
   end
rescue LoadError => load_err
  puts "Qt not found, using console"
   class ConsoleDefine
     # console code
   end
end