class Middleman::Cli::Prismic

Constants

MIDDLEMAN_LOCAL_DATA_FOLDER

Path where Middleman expects the local data to be stored

Public Class Methods

exit_on_failure?() click to toggle source

Tell Thor to exit with a nonzero exit code on failure

# File lib/middleman-prismic/commands/prismic.rb, line 27
def self.exit_on_failure?
  true
end
source_root() click to toggle source

method_option “refetch”,

aliases: "-r",
desc: "Refetches the data from Prismic"
# File lib/middleman-prismic/commands/prismic.rb, line 22
def self.source_root
  ENV['MM_ROOT']
end

Public Instance Methods

prismic() click to toggle source
# File lib/middleman-prismic/commands/prismic.rb, line 31
def prismic
  ::Middleman::Application.server.inst
  reference = MiddlemanPrismic.options.release

  Dir.mkdir('data') unless File.exists?('data')

  FileUtils.rm_rf(Dir.glob('data/prismic_*'))

  api = ::Prismic.api(MiddlemanPrismic.options.api_url)
  response = api.form('everything').submit(api.ref(reference))

  available_documents = []
  response.each {|d| available_documents << d.type}

  available_documents.uniq!

  available_documents.each do |document_type|
    documents = response.select{|d| d.type == document_type}
    File.open("data/prismic_#{document_type.pluralize}", 'w') do |f|
      f.write(Hash[[*documents.map.with_index]].invert.to_yaml)
    end
  end

  File.open('data/prismic_reference', 'w') do |f|
    f.write(api.master_ref.to_yaml)
  end

  MiddlemanPrismic.options.custom_queries.each do |k, v|
    response = api.form('everything').query(*v).submit(api.master_ref)
    File.open("data/prismic_custom_#{k}", 'w') do |f|
      f.write(Hash[[*response.map.with_index]].invert.to_yaml)
    end
  end
end