Class: JekyllImport::Importers::Behance

Inherits:
JekyllImport::Importer show all
Defined in:
lib/jekyll-import/importers/behance.rb

Class Method Summary collapse

Methods inherited from JekyllImport::Importer

inherited, run, stringify_keys, subclasses

Class Method Details

.process(options) ⇒ Object

Process the import.

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

Returns nothing.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# 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)

  puts "#{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

  puts "Finished importing."
end

.require_depsObject



4
5
6
7
8
9
10
11
12
# File 'lib/jekyll-import/importers/behance.rb', line 4

def self.require_deps
  JekyllImport.require_with_fallback(%w[
    fileutils
    safe_yaml
    date
    time
    behance
  ])
end

.specify_options(c) ⇒ Object



14
15
16
17
# File 'lib/jekyll-import/importers/behance.rb', line 14

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) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/jekyll-import/importers/behance.rb', line 19

def self.validate(options)
  %w[user api_token].each do |option|
    if options[option].nil?
      abort "Missing mandatory option --#{option}."
    end
  end
end