class JekyllImport::Importers::Behance

Public Class Methods

process(options) click to toggle source

Process the import.

user - the behance user to retrieve projects (ID or username) api_token - your developer API Token

Returns nothing.

# File lib/jekyll-import/importers/behance.rb, line 33
def self.process(options)
  user  = options.fetch("user")
  token = options.fetch("api_token")

  client = fetch_behance(token)

  user_projects = client.user_projects(user)

  Jekyll.logger.info "#{user_projects.length} project(s) found. Importing now..."

  user_projects.each do |project|
    details = client.project(project["id"])
    title   = project["name"].to_s
    formatted_date = Time.at(project["published_on"].to_i).to_date.to_s

    post_name = title.split(%r{ |!|/|:|&|-|$|,}).map do |character|
      character.downcase unless character.empty?
    end.compact.join("-")

    name = "#{formatted_date}-#{post_name}"

    header = {
      "layout"  => "post",
      "title"   => title,
      "details" => details,
    }

    FileUtils.mkdir_p("_posts")

    File.open("_posts/#{name}.md", "w") do |f|
      f.puts header.to_yaml
      f.puts "---\n\n"
      f.puts details["description"].to_s
    end
  end

  Jekyll.logger.info "Finished importing."
end
require_deps() click to toggle source
# File lib/jekyll-import/importers/behance.rb, line 6
def self.require_deps
  JekyllImport.require_with_fallback(%w(
    fileutils
    safe_yaml
    date
    time
    behance
  ))
end
specify_options(c) click to toggle source
# File lib/jekyll-import/importers/behance.rb, line 16
def self.specify_options(c)
  c.option "user",      "--user NAME",       "The username of the account"
  c.option "api_token", "--api_token TOKEN", "The API access token for the account"
end
validate(options) click to toggle source
# File lib/jekyll-import/importers/behance.rb, line 21
def self.validate(options)
  %w(user api_token).each do |option|
    abort "Missing mandatory option --#{option}." if options[option].nil?
  end
end

Private Class Methods

fetch_behance(token) click to toggle source
# File lib/jekyll-import/importers/behance.rb, line 75
def fetch_behance(token)
  ::Behance::Client.new(:access_token => token)
end