我写过这个类,它返回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