3

TweetStreamを使用して次のサンプルを実行すると、言及されたエラーが発生します。

つぶやき.rb

require 'tweetstream'

TweetStream.configure do |config|
  config.consumer_key       = '<CONSUMER KEY>'
  config.consumer_secret    = '<CONSUMER SECRET>'
  config.oauth_token        = '<OAUTH TOKEN>'
  config.oauth_token_secret = '<OAUTH TOKEN SECRET'
  config.auth_method        = :oauth
end

TweetStream::Client.new.track('ruby') do |status|
  puts "#{status.text}"
end

エラー

$ ruby tweets.rb 
/home/amit/.rvm/gems/ruby-1.9.3-p194/gems/tweetstream-2.3.0/lib/tweetstream/client.rb:96:in `track': undefined method `extract_options!' for ["ruby"]:Array (NoMethodError)
        from tweets.rb:11:in `<main>'
    https://github.com/intridea/tweetstream

何か不足していますか?

4

3 に答える 3

7

別の解決策は次のとおりです。クラスを開き、その上でメソッドArrayを定義します。extract_options!

次のコードを追加します。

class Array
  def extract_options!
    last.is_a?(::Hash) ? pop : {}
  end unless defined? Array.new.extract_options!
end

ファイルの先頭tweets.rbまたは別のファイル(ファイルで必要になる必要がありtweets.rbます)。

于 2013-02-10T04:53:23.030 に答える
3

extract_options!ActiveSupportメソッドです。Railsアプリでない場合は、インストールしてスクリプトに含める必要があります。

于 2012-12-14T08:04:13.283 に答える