пытается обойти мою голову Фидзирра здесь.
У меня есть все настройки и все, и я могу даже получить результаты и обновления, но происходит что-то странное.
Я придумал следующий код:
def initialize(feed_url)
@feed_url = feed_url
@rssObject = Feedzirra::Feed.fetch_and_parse(@feed_url)
end
def update_from_feed_continuously()
@rssObject = Feedzirra::Feed.update(@rssObject)
if @rssObject.updated?
puts @rssObject.new_entries.count
else
puts "nil"
end
end
Правильно, то, что я делаю выше, начинается с большой подачи, а затем только с получением обновлений. Я уверен, что должен делать что-то глупое, потому что, хотя я могу получать обновления и сохранять их в одной переменной экземпляра, после первого раза я никогда не смогу получить их снова.
Очевидно, это происходит потому, что я перезаписываю переменную экземпляра только обновлениями и теряю полный объект фида.
Затем я подумал об изменении моего кода следующим образом:
def update_from_feed_continuously()
feed = Feedzirra::Feed.update(@rssObject)
if feed.updated?
puts feed.new_entries.count
else
puts "nil"
end
end
Ну, я ничего не перезаписываю, и это должно быть правильным способом?
НЕПРАВИЛЬНО , это означает, что я обречен всегда пытаться получать обновления одного и того же статического объекта фида, поскольку, хотя я получаю обновления для переменной, я никогда не обновляю свой "статический фид" объект ", и новые добавленные элементы будут добавлены в мои" feed.new_entries ", поскольку они в теории являются новыми.
Я уверен, что здесь не хватает шага, но я был бы очень признателен, если бы кто-то мог пролить мне свет на это. Я часами просматривал этот код и не могу с ним разобраться.
Очевидно, что это должно работать нормально, если я сделал что-то вроде:
if feed.updated?
puts feed.new_entries.count
@rssObject = initialize(@feed_url)
else
Потому что это приведет к повторной инициализации моей переменной экземпляра новым объектом фида, и обновления будут происходить снова.
Но это также означает, что любое новое обновление, добавленное в этот момент, будет потеряно, равно как и массовый перебор , так как мне придется загружать его снова.
Заранее спасибо!