我寫過這個類,它返回Feed更新,但我認爲它可以進一步改進。這不是出問題或任何東西,但作爲一個新的Ruby開發者,我認爲這是一件好事,提高:-)快速幫助重構Ruby類
class FeedManager
attr_accessor :feed_object, :update, :new_entries
require 'feedtosis'
def initialize(feed_url)
@feed_object = Feedtosis::Client.new(feed_url)
fetch
end
def fetch
@feed_object.fetch
end
def update
@updates = fetch
end
def updated?
@updates.new_entries.count > 0 ? true : false
end
def new_entries
@updates.new_entries
end
end
正如你可以看到,這是相當簡單的,但我看到的是,事情並不很正確的是:
- 每當我通過終端調用fetch時,它會打印一個包含更新的列表,當它真的假定返回一個對象時。
因此,作爲一個例子,在終端,如果我這樣做:
client = Feedtosis::Client.new('http://stackoverflow.com/feeds')
result = client.fetch
然後我得到:
<Curl::Easy http://stackoverflow.com/feeds>
這也正是我所期待的。但是,這樣做與「inniting」級同樣的事情時有:
FeedManager.new("http://stackoverflow.com/feeds")
我得到恢復與對飼料的所有項目的數組對象。
當然,我做錯了什麼,所以任何幫助重構這個類他將不勝感激。
此外,我希望看到有關我的實施以及任何形式的評論,以使其更好的意見,歡迎。
在此先感謝
不確定我;我在這裏錯過了一些東西,但我應該打電話:result = FeedManager.new(「http://stackoverflow.com/feeds」).updates每次? 此外,我是這樣做的: 結果= FeedManager.new(「http://stackoverflow.com/feeds」)和嘗試 result.updates,我得到「你有沒有對象,當你不期望它!」 – 2010-03-21 01:11:34
直接調用Feedtosis :: Client.new(feed_url).fetch時,相同的URL是否有效? – 2010-03-21 02:21:20
在初始化方法 – 2010-03-21 02:58:22