首先,我是红宝石的新手,所以如果我做了一些不常规的话我会道歉。我只是想运行一个与twitter交互的简单脚本。它在我的macbook上运行得很好,但是当我尝试在我的覆盆子pi上运行它时,我得到了这个错误:“意外的keyword_end,期待$ end。”我找到了涉及此错误的帖子,但我觉得这些答案对我没有帮助。
这主要是让我失望,因为它没有发生在我的Mac上。
这是脚本(或者至少是其中的一部分)我遇到了以下问题:
#encoding: UTF-8
require 'tweetstream'
require 'rubygems'
require 'oauth'
require 'json'
puts TweetStream::VERSION
c_key = 'xxxx'
c_secret = 'xxxx'
oa_token = 'xxxx'
oa_token_secret = 'xxxx'
TweetStream.configure do |config|
config.consumer_key = c_key
config.consumer_secret = c_secret
config.oauth_token = oa_token
config.oauth_token_secret = oa_token_secret
config.auth_method = :oauth
end
consumer_key = OAuth::Consumer.new( c_key, c_secret)
access_token = OAuth::Token.new( oa_token, oa_token_secret)
client = TweetStream::Client.new
keywords = ['word','word']
client.userstream do |status|
if keywords.any? {|str| status.text.downcase.include? str} && status.user.id.to_s != '11111111111'
unless status.text[0,4].include? 'RT @'
puts "#{status.id}: #{status.text}\n"
end
end
end
非常感谢任何帮助或指导!
好的,所以我只是从我的另一台计算机上复制了我的代码,它运行正常。我不知道发生了什么事,因为当我第一次带它时,我从未真正摆弄它。谢谢你的帮助!
答案 0 :(得分:0)
我不会告诉你你的语法错误在哪里,但我会告诉你如何找出答案。
开始评论代码。这是最简单的一个编辑器,它允许您突出显示一个代码块并用一个命令注释掉它(例如,在Emacs中,c-C c-C切换是否突出显示的块被注释掉)。从您最近进行修改的代码部分开始(如果您不确定,请检查您的版本控制系统以查看您已更改的内容)。选择它的一部分 - 也许是一半,以便评论。确保你的评论属于一个 - 例如,不要注释掉一半的循环 - 注释掉整个事情。
现在加载你的程序。你还得到语法错误吗?如果没有,你刚刚确定它必须在哪里。获取您注释掉的一些代码,然后取消注释。如果是这样,找到另一个代码块并将其注释掉。
泡沫,冲洗重复。
您不必担心程序是否运行 - 如果加载时没有语法错误,由于所有注释掉的代码,它无疑会失败。你所要做的就是找出语法错误的位置。
答案 1 :(得分:0)
有趣的故事......之前我遇到了同样的错误,这让我开了一个小时的NUTS。不开玩笑。我拒绝放弃。我只是想不出来!为什么错误?我的代码是在点。
然后....我碰巧碰到向下滚动条只是为了看到已经有一个“结束”插入下面就像2行下来!我在屏幕上看不到它。有一个额外的!!! SMH ...
一旦我把它拿出来......我的“捆绑执行耙试验”通过了。有时这是小事:):/ / p>
答案 2 :(得分:-1)
更改
unless status.text[0,4].include? 'RT @'
puts "#{status.id}: #{status.text}\n"
end
为:
if !status.text[0,4].include? 'RT @'
puts "#{status.id}: #{status.text}\n"
end
或:
puts "#{status.id}: #{status.text}\n" unless status.text[0,4].include? 'RT @'
除非某些东西等同于if!something
除非不需要end
。