2009-08-28 7 views
0

申し訳ありません、これは基本的な/愚かな/ noobの質問かもしれません - 私はちょうど微調整しようとしています既存のRubyスクリプト - 私のMac上で動作しますが、Ubuntu 9.04では動作しません。ruby​​ noob:/usr/lib/ruby/1.8/rss/rss.rb:922:in `have_required_elements? ':未定義のメソッド

エラーはこれです:ルビーのRSSビットを使用してRSSファイルを書き出すしようとしている

/usr/lib/ruby/1.8/rss/rss.rb:922:in `have_required_elements?': undefined method `have_required_elements?' for "App Store Reviews for ":String (NoMethodError) 
    from /usr/lib/ruby/1.8/rss/maker/base.rb:188:in `any?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:922:in `each' 
    from /usr/lib/ruby/1.8/rss/rss.rb:922:in `any?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:922:in `have_required_elements?' 
    from /usr/lib/ruby/1.8/rss/maker/base.rb:188:in `all?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `each' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `all?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `have_required_elements?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:962:in `tag' 
    from /usr/lib/ruby/1.8/rss/rss.rb:884:in `to_s' 
    from /usr/lib/ruby/1.8/rss/rss.rb:924:in `have_required_elements?' 
    from /usr/lib/ruby/1.8/rss/maker/base.rb:188:in `all?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `each' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `all?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:917:in `have_required_elements?' 
    from /usr/lib/ruby/1.8/rss/rss.rb:962:in `tag' 
    from /usr/lib/ruby/1.8/rss/rss.rb:1284:in `tag' 
    from /usr/lib/ruby/1.8/rss/rss.rb:884:in `to_s' 
    from ./appstore_reviews:215:in `write' 
    from ./appstore_reviews:215 
    from ./appstore_reviews:214:in `open' 
    from ./appstore_reviews:214 

。エラーは、ファイル書き込み線から来ている:いずれかのために、事前に link text

おかげでスローされたいくつかの基本的なRSSフィードのもので link text

:iPhoneアプリレビューscaperコードに基づいています。この

... 
version = "2.0" 
destination = "appreviews_"+ARGV[0]+".xml" 
puts destination 
content = RSS::Maker.make(version) do |m| 
m.items.do_sort = true 

# a simple command-line presentation 
software.keys.sort.each do |software_key| 

m.channel.title = "App Store Reviews for ",software_key 
m.channel.link = "http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=",ARGV[1],"&mt=8" # need to put in link to itunes 
m.channel.description = "App Store Reviews for ",software_key 
... 

File.open(destination,"w") do |f| 
f.write(content) 
end 

ヒント/ポインタ。 Chris

答えて

1

エラーメッセージは、「have_required_elements?」というメソッドを持たないStringに関するものです。

http://www.ruby-doc.org/core-1.9/classes/RSS/Element.htmlによると、RSS :: Elementにはその名前のメソッドがあります。おそらく、間違った型のパラメータを持つメソッドをある時点で呼び出します。

この行は、疑わしい:

m.channel.title = "App Store Reviews for ",software_key 

次の2つの文字列を連結しようとしていますか?その場合は、コンマの代わりにプラス演算を使用する必要があります。ここのカンマは、暗黙的に配列を生成します。

+0

ありがとうございます - 今、次の問題に...しかし、少なくともこのエラーは消えました:) –

関連する問題