forked from maciej-sokolowski/trailblazer-front
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGuardfile
43 lines (31 loc) · 1.67 KB
/
Guardfile
1
2
3
4
5
6
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
require_relative "config/environment"
module ::Guard
# https://github.com/guard/guard/wiki/Create-a-guard
class Torture < Plugin
end
end
puts "========= Guardfile:"
pages_config, pages, returned, controller = Cms::Render.call()
file_to_page_map = returned.fetch(:file_to_page_map)
book_headers = returned[:book_headers]
guard :torture do
# This runs the modified test
watch /section\/(.*)/ do |m|
# pp file_to_page_map
book_name, version = file_to_page_map.fetch(m[0])
puts %(Re-rendering #{book_name}/#{version} because #{m[0].inspect} changed...)
book_options = pages_config.fetch(book_name)[:versions].fetch(version).fetch(:options)
book_sections = pages_config.fetch(book_name)[:versions].fetch(version).fetch(:sections)
if book_headers[book_name].versions_to_h2_headers[version]
# only applies to docs with h2 headers, not landing page.
book_headers[book_name].versions_to_h2_headers[version].items = [] # FIXME: they will be recomputed in {render_page}.
end
page, _ = ::Torture::Cms::Site.render_page(name: book_name, sections: book_sections, book_headers: book_headers, version: version, **book_options)
page, _ = ::Torture::Cms::Site.render_final_page([book_name, version], book_headers: book_headers, controller: controller, **page)
page, _ = ::Torture::Cms::Site.produce_page(**page)
end
# Reload when ViewsController changes
watch("app/controllers/views_controller.rb") { Guard.queue.instance_variable_get(:@commander).reload }
# and reload when images are added (veeery convenient).
watch("app/assets/images") { puts "IMAGE"; Guard.queue.instance_variable_get(:@commander).reload } # FIXME: not called!
end