class JekyllImport::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/jekyll-import/importers/google_reader.rb, line 31
def self.process(options)
  source = options.fetch("source")

  URI.parse(source).open 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/jekyll-import/importers/google_reader.rb, line 14
def self.require_deps
  JekyllImport.require_with_fallback(%w(
    rubygems
    rss
    fileutils
    safe_yaml
    open-uri
    rexml/document
    date
  ))
end
specify_options(c) click to toggle source
# File lib/jekyll-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/jekyll-import/importers/google_reader.rb, line 6
def self.validate(options)
  abort "Missing mandatory option --source." if options["source"].nil?
end