lib/archival/builder.rb in archival-0.0.2 vs lib/archival/builder.rb in archival-0.0.4
- old
+ new
@@ -10,11 +10,11 @@
module Archival
class Builder
attr_reader :page_templates
def initialize(config, *_args)
- @config = Config.new(config)
+ @config = config
refresh_config
end
def refresh_config
@file_system = Liquid::LocalFileSystem.new(
@@ -34,10 +34,15 @@
update_pages
update_objects
end
+ def full_rebuild
+ Layout.reset_cache
+ refresh_config
+ end
+
def update_pages
do_update_pages(File.join(@config.root, @config.pages_dir))
end
def do_update_pages(dir, prefix = nil)
@@ -59,10 +64,11 @@
template_file = File.join(
@config.pages_dir,
add_prefix.call(page_name)
)
content = @file_system.read_template_file(template_file)
+ content += dev_mode_content if @config.dev_mode
@page_templates[add_prefix.call(page_name)] =
Liquid::Template.parse(content)
end
end
end
@@ -120,8 +126,21 @@
"#{template}.html")
File.open(out_path, 'w+') do |file|
file.write(render(template))
end
end
+ return if @config.dev_mode
+
+ # in production, also copy all assets to the dist folder.
+ @config.assets_dirs.each do |asset_dir|
+ FileUtils.copy_entry File.join(@config.root, asset_dir),
+ File.join(@config.build_dir, asset_dir)
+ end
+ end
+
+ private
+
+ def dev_mode_content
+ "<script src=\"http://localhost:#{@config.helper_port}/js/archival-helper.js\" type=\"application/javascript\"></script>" # rubocop:disable Layout/LineLength
end
end
end