Я написал этот класс, который возвращает обновления каналов, но думаю, что его можно еще улучшить. Это не глючит или что-то в этом роде, но, как новый разработчик 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")
Я получаю объект, возвращаемый в виде массива со всеми элементами в ленте.
Конечно, я делаю что-то не так, поэтому любая помощь в рефакторинге этого класса будет ему очень признательна.
Кроме того, я хотел бы видеть комментарии о моей реализации, а также комментарии любого рода, чтобы сделать ее лучше.
Заранее спасибо