Class: PuzzlyApiPlugin::Generator

Inherits:
Jekyll::Generator
  • Object
show all
Defined in:
lib/puzzly_api_plugin/generator.rb

Instance Method Summary collapse

Instance Method Details

#clean(site) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/puzzly_api_plugin/generator.rb', line 61

def clean(site)
  log("Cleanning site destination folder")

  destination = site.config["destination"]
  clean_collection_directory("#{destination}/apis")
  clean_collection_directory("#{destination}/caches")
  clean_collection_directory("#{destination}/contexts")
  clean_collection_directory("#{destination}/modules")
  clean_collection_directory("#{destination}/queries")
  clean_collection_directory("#{destination}/schemas")
  clean_collection_directory("#{destination}/tables")
  clean_collection_directory("#{destination}/topics")
end

#clean_collection_directory(path) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
# File 'lib/puzzly_api_plugin/generator.rb', line 75

def clean_collection_directory(path)
  if(!Dir.exist?(path))
    return
  end

  Dir.foreach(path) do |file|
    if ((file.to_s != ".") and (file.to_s != ".."))
      File.delete("#{path}/#{file}")
    end
  end
end

#generate(site) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
# File 'lib/puzzly_api_plugin/generator.rb', line 7

def generate(site)
  clean(site)

  log("Processing #{site.documents.size} documents")

  site.documents.each do |document|
    collection = PuzzlyApiPlugin.const_get("#{document.collection.label.capitalize}Collection").instance
    collection.add(document)
    log("Processing document #{document.data}")
  end

  render site, HomeDashboardView.create

  render site, ContextsView.create
  ContextsCollection.instance.values.each do |context|
    render site, ContextView.create(context)
  end

  render site, ModulesView.create
  ModulesCollection.instance.values.each do |mod|
    render site, ModuleView.create(mod)
  end

  render site, SchemasView.create
  SchemasCollection.instance.values.each do |schema|
    render site, SchemaView.create(schema)
  end

  render site, ApisView.create
  ApisCollection.instance.values.each do |api|
    render site, ApiView.create(api)
  end

  render site, CachesView.create
  CachesCollection.instance.values.each do |cache|
    render site, CacheView.create(cache)
  end

  render site, QueriesView.create
  QueriesCollection.instance.values.each do |query|
    render site, QueryView.create(query)
  end

  render site, TablesView.create
  TablesCollection.instance.values.each do |table|
    render site, TableView.create(table)
  end

  render site, TopicsView.create
  TopicsCollection.instance.values.each do |topic|
    render site, TopicView.create(topic)
  end
end

#log(message) ⇒ Object



93
94
95
# File 'lib/puzzly_api_plugin/generator.rb', line 93

def log(message)
  PuzzlyApiPlugin.log(message)
end

#render(site, view) ⇒ Object



87
88
89
90
91
# File 'lib/puzzly_api_plugin/generator.rb', line 87

def render(site, view)
  content = view.render
  path = view.path
  site.pages << JSONPage.new(site, site.source, File.dirname(path), File.basename(path), content)
end