1

我正在尝试运行一个 ruby​​ 处理文件

vishrut@vishrut-XPS-L501X:~/Twitter-Emotion-Graphs/samples/contributed$ rp5 run sand_traveler.rb 
undefined method `current' for Processing::App:Class
    ./sand_traveler.rb:63:in `initialize'
    ./sand_traveler.rb:43:in `reset_all'
    org/jruby/RubyFixnum.java:256:in `times'
    ./sand_traveler.rb:40:in `reset_all'
    ./sand_traveler.rb:22:in `setup'
    /var/lib/gems/1.8/gems/ruby-processing-1.0.11/lib/ruby-processing/app.rb:211:in `handleDraw'

sand_traveler.rb 的上下文和代码:http: //ashkenas.com/codework/ruby-processing.html

我很确定所有必要的模块都已安装(java、ruby、ruby-processing)我能够使用 rp5 运行其他其他 ruby​​-processing .rb 文件。只有这个显示错误。

PS:文件位置重要吗?该文件在我的主文件夹中。

4

1 回答 1

0

尝试替换第 63 行sand_traveler.rb

@app = Processing::App.current

和:

@app = $app

我得到了和你一样的错误,这为我解决了。($app是正在运行的草图的全局句柄,这也是Processing::App.current应该做的——参见v0.3 的CHANGELOG条目)。

至于为什么它不起作用——似乎这个方法已经从最新版本的ruby-processing. 例如,如果您查看0.8 版Processing::App,在第 40 行定义一个类方法ruby-proccessing.rb

    def self.current; @current_app; end

最新版本中缺少这种方法。

于 2012-04-29T11:33:14.487 回答