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