class BuntoImport::Importers::GoogleReader
Public Class Methods
process(options)
click to toggle source
Process the import.
source - a URL or a local file String.
Returns nothing.
# File lib/bunto-import/importers/google_reader.rb, line 31 def self.process(options) source = options.fetch('source') open(source) do |content| feed = RSS::Parser.parse(content) raise "There doesn't appear to be any RSS items at the source (#{source}) provided." unless feed feed.items.each do |item| title = item.title.content.to_s formatted_date = Date.parse(item.published.to_s) post_name = title.split(%r{ |!|/|:|&|-|$|,}).map do |i| i.downcase if i != '' end.compact.join('-') name = "#{formatted_date}-#{post_name}" header = { 'layout' => 'post', 'title' => title } FileUtils.mkdir_p("_posts") File.open("_posts/#{name}.html", "w") do |f| f.puts header.to_yaml f.puts "---\n\n" f.puts item.content.content.to_s end end end end
require_deps()
click to toggle source
# File lib/bunto-import/importers/google_reader.rb, line 14 def self.require_deps BuntoImport.require_with_fallback(%w[ rubygems rss fileutils safe_yaml open-uri rexml/document date ]) end
specify_options(c)
click to toggle source
# File lib/bunto-import/importers/google_reader.rb, line 10 def self.specify_options(c) c.option 'source', '--source', 'Source XML file of Google Reader export' end
validate(options)
click to toggle source
# File lib/bunto-import/importers/google_reader.rb, line 4 def self.validate(options) if options['source'].nil? abort "Missing mandatory option --source." end end