Class: JekyllPagesApi::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll_pages_api/generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(site) ⇒ Generator

Returns a new instance of Generator.



10
11
12
# File 'lib/jekyll_pages_api/generator.rb', line 10

def initialize(site)
  @site = site
end

Instance Attribute Details

#siteObject (readonly)

Returns the value of attribute site.



8
9
10
# File 'lib/jekyll_pages_api/generator.rb', line 8

def site
  @site
end

Instance Method Details

#dataObject



27
28
29
30
31
# File 'lib/jekyll_pages_api/generator.rb', line 27

def data
  {
    entries: pages_data
  }
end

#dest_dirObject



33
34
35
# File 'lib/jekyll_pages_api/generator.rb', line 33

def dest_dir
  File.join('api', 'v1')
end

#generateObject



44
45
46
# File 'lib/jekyll_pages_api/generator.rb', line 44

def generate
  self.site.pages << self.page
end

#pageObject



37
38
39
40
41
42
# File 'lib/jekyll_pages_api/generator.rb', line 37

def page
  # based on https://github.com/jekyll/jekyll-sitemap/blob/v0.7.0/lib/jekyll-sitemap.rb#L51-L54
  page = PageWithoutAFile.new(self.site, File.dirname(__FILE__), self.dest_dir, 'pages.json')
  page.output = self.data.to_json
  page
end

#pagesObject



14
15
16
17
18
19
20
21
# File 'lib/jekyll_pages_api/generator.rb', line 14

def pages
  result = []
  self.site.each_site_file do |site_file|
    page = Page.new(site_file, @site)
    result << page if page.html?
  end
  result
end

#pages_dataObject



23
24
25
# File 'lib/jekyll_pages_api/generator.rb', line 23

def pages_data
  self.pages.map(&:to_json)
end