Class: CloudCannonJekyllBookshop::SiteData

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudcannon-jekyll-bookshop/output-site-data.rb

Class Method Summary collapse

Class Method Details

.destination_json_path(filename) ⇒ Object



26
27
28
# File 'lib/cloudcannon-jekyll-bookshop/output-site-data.rb', line 26

def self.destination_json_path(filename)
  Jekyll.sanitized_path(@site.dest, json_path(filename))
end

.generate_file(filename, content) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/cloudcannon-jekyll-bookshop/output-site-data.rb', line 18

def self.generate_file(filename, content)
  dest = destination_json_path(filename)
  FileUtils.mkdir_p(File.dirname(dest))
  File.open(dest, "w") { |file| file.write(content) }
  @site.keep_files ||= []
  @site.keep_files << json_path(filename)
end

.json_path(filename) ⇒ Object



30
31
32
# File 'lib/cloudcannon-jekyll-bookshop/output-site-data.rb', line 30

def self.json_path(filename)
  "_cloudcannon/#{filename}.json"
end

.output(site) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/cloudcannon-jekyll-bookshop/output-site-data.rb', line 8

def self.output(site)
  @site = site
  return unless @site.data["_bookshop_site_data"]

  output_payload = @site.data["_bookshop_site_data"].to_json

  filename = "bookshop-site-data"
  generate_file(filename, output_payload)
end