Как «потребовать» вручную установленные самоцветы (плазмоид KDE)? - PullRequest
0 голосов
/ 22 мая 2011

Я пытаюсь написать Ruby-плазмоид для KDE. Мне нужно использовать только один 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" работает хорошо (в части "require"), но тестирование плазмоида с помощью "plasmoidviewer" не удается. Обратите внимание, что обычные гемы из стандартной установки Ruby работают хорошо, то есть require 'Qt4' или require 'yaml' загружаются отлично. Я использую Ruby 1.9.2p180 под Linux.

09: 40 PM - ОБНОВЛЕНИЕ: Ричард Дейл, один из разработчиков QtRuby, только что исправил эту проблему несколько минут назад. В следующем выпуске KDE будет исправлена ​​версия QtRuby.

Ответы [ 2 ]

0 голосов
/ 22 мая 2011

Вы пробовали это:

require 'rubygems'

?

0 голосов
/ 22 мая 2011
   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'
...