【发布时间】:2010-03-21 00:01:07
【问题描述】:
我编写了这个返回提要更新的类,但我认为它可以进一步改进。这不是故障或任何问题,但作为一个新的 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>
这正是我所期望的。然而,当用“初始化”类做同样的事情时:
FeedManager.new("http://stackoverflow.com/feeds")
我将对象作为一个数组返回,其中包含提要上的所有项目。
当然我做错了什么,所以任何重构这个类的帮助他都会非常感激。
另外,我希望看到 cmets 关于我的实施,以及任何形式的评论以使其更好。
提前致谢
【问题讨论】:
标签: ruby-on-rails ruby refactoring