Class: NewsFeed

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/news_feed.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.fetch_feedsObject



49
50
51
52
53
# File 'app/models/news_feed.rb', line 49

def self.fetch_feeds
  NewsFeed.all.each do |news_feed|
    news_feed.touch
  end
end

.per_pageObject



12
13
14
# File 'app/models/news_feed.rb', line 12

def self.per_page
  10
end

Instance Method Details

#contentObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'app/models/news_feed.rb', line 27

def content
  if body
  # tDiary の RSS をパースした際に to_s が空になる
  # rss = RSS::Parser.parse(feed)
  # rss.to_s
  # => ""
  #if rss.nil?
    begin
      rss = RSS::Parser.parse(body)
    rescue RSS::InvalidRSSError
      rss = RSS::Parser.parse(body, false)
    rescue RSS::NotWellFormedError, TypeError
      nil
    end
  #end
  end
end

#fetchObject



16
17
18
19
20
21
22
23
24
25
# File 'app/models/news_feed.rb', line 16

def fetch
  begin
    feed = Faraday.get(url).body.force_encoding('UTF-8')
    if rss = RSS::Parser.parse(feed, false)
      self.body = feed
    end
  rescue StandardError, Timeout::Error
    nil
  end
end

#force_reloadObject



45
46
47
# File 'app/models/news_feed.rb', line 45

def force_reload
  save!
end