class BuntoImport::Importers::Enki
Constants
- SQL
Public Class Methods
process(options)
click to toggle source
Just working with postgres, but can be easily adapted to work with both mysql and postgres.
# File lib/bunto-import/importers/enki.rb, line 41 def self.process(options) dbname = options.fetch('dbname') user = options.fetch('user') pass = options.fetch('password', "") host = options.fetch('host', "localhost") FileUtils.mkdir_p('_posts') db = Sequel.postgres(:database => dbname, :user => user, :password => pass, :host => host, :encoding => 'utf8') db[SQL].each do |post| name = [ sprintf("%.04d", post[:date].year), sprintf("%.02d", post[:date].month), sprintf("%.02d", post[:date].day), post[:slug].strip ].join('-') name += '.textile' File.open("_posts/#{name}", 'w') do |f| f.puts({ 'layout' => 'post', 'title' => post[:title].to_s, 'enki_id' => post[:id], 'categories' => post[:tags] }.delete_if { |k, v| v.nil? || v == '' }.to_yaml) f.puts '---' f.puts post[:body].delete("\r") end end end
require_deps()
click to toggle source
# File lib/bunto-import/importers/enki.rb, line 29 def self.require_deps BuntoImport.require_with_fallback(%w[ rubygems sequel fileutils pg yaml ]) end
specify_options(c)
click to toggle source
# File lib/bunto-import/importers/enki.rb, line 22 def self.specify_options(c) c.option 'dbname', '--dbname', 'Database name' c.option 'user', '--user', 'Database name' c.option 'password', '--password', 'Database name (default: "")' c.option 'host', '--host', 'Database name' end
validate(options)
click to toggle source
# File lib/bunto-import/importers/enki.rb, line 14 def self.validate(options) %w[dbname user].each do |option| if options[option].nil? abort "Missing mandatory option --#{option}." end end end