如何“需要”手动安装的宝石(KDE plasmoid)?

时间:2011-05-22 15:51:51

标签: ruby kde plasmoid plasma

我正在尝试为KDE编写Ruby等离子体。我只需要使用一个rubygem。每当我写require 'dbus'时,它就会抛出一个错误:

code/main.rb:6:in 'require': no such file to load -- dbus (LoadError) code/main.rb:6:in '<module:TestApp>' code/main.rb:5:in '<top (required)>' /usr/share/apps/plasma_scriptengine_ruby/applet.rb:177:in 'load' /usr/share/apps/plasma_scriptengine_ruby/applet.rb:177:in 'init' /usr/share/apps/plasma_scriptengine_ruby/applet.rb:201:in 'constraintsEvent': undefined method 'constraintsEvent' for nil:NilClass (NoMethodError) /usr/share/apps/plasma_scriptengine_ruby/applet.rb:201:in 'constraintsEvent': undefined method 'constraintsEvent' for nil:NilClass (NoMethodError)

实际上,正常的“ruby main.rb”效果很好(关于“需要”部分),但用“plasmoidviewer”测试plasmoid失败了。请注意,标准Ruby安装中的常规gem很好用,即require 'Qt4'require 'yaml'完全加载。我在Linux下使用Ruby 1.9.2p180。

09:40 PM - 更新: QtRuby开发人员之一Richard Dale刚刚在几分钟前解决了这个问题。下一版KDE将修补QtRuby版本。

2 个答案:

答案 0 :(得分:0)

   require 'find'
   require 'findUtils'

    Find.find(PATH_WHERE_GEM_IS_INSTALLED) do |path|
      if FileTest.directory?(path)
            $: << File.expand_path(path)
       if File.basename(path)[0] == ?. and File.basename(path) != '.'
          Find.prune
        else
          next
        end
      else
      end
    end

然后你可以做

require 'dbus'

答案 1 :(得分:0)

你试过这个:

require 'rubygems'