尝试使用gem调用方法时出现符号转换错误?

时间:2013-01-13 02:47:46

标签: ruby chartbeat

我正在尝试使用他们的API为我的网站获取一些chartbeat.com统计信息。使用Python chartbeat egg工作得很好但是使用Ruby我很难超越第一阶段。最终,我的目标是拉出chartbeat quickstats数组(当前用户,每秒的速率等)并将其发送到石墨,然后将整个事件变为daemonize。

我对编程方法,理论和实践有一个很好的理解,我对Ruby语法非常环保,并尝试阅读符号,方法(私有/公共),似乎无法让Ruby发挥作用我的大脑很好。我认为这很可能是我的问题所在。

根据我的理解,我不必做puts或类似的事情。在quickstats上调用c方法应该打印通过GEM从chartbeat API返回的任何内容。

chartbeat gem来自https://github.com/ashaw/chartbeat。我的Ruby是Ruby 1.9.3p362 (2012-12-25 revision 38607) [x86_64-darwin12]

我运行脚本时得到这个:

/opt/local/lib/ruby1.9/gems/1.9.1/gems/chartbeat-0.2.2/lib/chartbeat.rb:31:in `[]': can't convert Symbol into Integer (TypeError)
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/chartbeat-0.2.2/lib/chartbeat.rb:31:in `block in method_missing'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/chartbeat-0.2.2/lib/chartbeat.rb:30:in `each'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/chartbeat-0.2.2/lib/chartbeat.rb:30:in `method_missing'
from /Users/jed/Documents/workspace/chartbeat2graphite/c2b.rb:8:in `<main>'

代码是:

require 'chartbeat'
require 'graphite'
require 'daemonize'

c = Chartbeat.new(:apikey => "sadfklj09238402938" , :host => "lipsum.com")

c.quickstats :path => '/'

1 个答案:

答案 0 :(得分:1)

我不确定你实际使用的宝石可能无法正常工作。宝石似乎还没有更新两年。

查看分支,我发现qhduong/chartbeat更新了它以使用新的URI,或者DramaFever/chartbeat执行相同的操作,但存在差异。我不知道它们是否影响它的运行方式。