Sha256: c63db852489de745342218eefb701a0d7c3959b03af3481fdb3fdb407215d86a
Contents?: true
Size: 1.47 KB
Versions: 2
Compression:
Stored size: 1.47 KB
Contents
class NewsFeed < ActiveRecord::Base attr_accessible :title, :url default_scope order: "news_feeds.position" belongs_to :library_group, validate: true validates_presence_of :title, :url, :library_group validates_associated :library_group validates_length_of :url, maximum: 255 before_save :fetch acts_as_list def self.per_page 10 end def fetch begin feed = open(url) do |f| f.read end if rss = RSS::Parser.parse(feed, false) self.body = feed end rescue StandardError, Timeout::Error nil end end 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 def force_reload save! end def self.fetch_feeds NewsFeed.all.each do |news_feed| news_feed.touch end end end # == Schema Information # # Table name: news_feeds # # id :integer not null, primary key # library_group_id :integer default(1), not null # title :string(255) # url :string(255) # body :text # position :integer # created_at :datetime not null # updated_at :datetime not null #
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
enju_news-0.1.0.pre7 | app/models/news_feed.rb |
enju_news-0.1.0.pre6 | app/models/news_feed.rb |