class Feed2Email::OPMLImporter
Public Class Methods
import(path, remove = false)
click to toggle source
# File lib/feed2email/opml_importer.rb, line 5 def self.import(path, remove = false) require 'feed2email/feed' feeds = open(path) {|f| new(f).feeds } imported = 0 feeds.each do |uri| if feed = Feed[uri: uri] warn "Feed already exists: #{feed}" else feed = Feed.new(uri: uri) if feed.save(raise_on_failure: false) puts "Imported feed: #{feed}" imported += 1 else warn "Failed to import feed: #{feed}" end end end if remove Feed.exclude(uri: feeds).each do |feed| if feed.delete puts "Removed feed: #{feed}" else warn "Failed to remove feed: #{feed}" end end end imported end
new(io)
click to toggle source
# File lib/feed2email/opml_importer.rb, line 40 def initialize(io) @io = io end
Public Instance Methods
feeds()
click to toggle source
# File lib/feed2email/opml_importer.rb, line 44 def feeds Nokogiri::XML(data).css('opml body outline').map {|outline| outline['xmlUrl'] }.compact end
Private Instance Methods
data()
click to toggle source
# File lib/feed2email/opml_importer.rb, line 52 def data io.read end
io()
click to toggle source
# File lib/feed2email/opml_importer.rb, line 56 def io; @io end