Class: HtmlPrecompileHook

Inherits:
Mumukit::Templates::MultiFilePrecompileHook
  • Object
show all
Defined in:
lib/precompile_hook.rb

Constant Summary collapse

VALID_EXTENSIONS =
['.html', '.js', '.css']

Instance Method Summary collapse

Instance Method Details

#consolidate(main_content, files) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/precompile_hook.rb', line 8

def consolidate(main_content, files)
  files_by_extension = files.group_by { |file_name, _| file_name.get_extension }
  files_by_extension.each { |extension, values| files_by_extension[extension] = values.to_h }

  document = Nokogiri::HTML(main_content)
  merge_script_tags! document, files_by_extension
  merge_style_tags! document, files_by_extension

  document.to_html
    .gsub(/<!DOCTYPE[^>]+>/, '')
    .gsub(/<meta[^>]+>/, '')
end

#files_of(request) ⇒ Object



21
22
23
# File 'lib/precompile_hook.rb', line 21

def files_of(request)
  super(request).select { |file_name, _| valid_extension? file_name }
end

#main_fileObject



4
5
6
# File 'lib/precompile_hook.rb', line 4

def main_file
  'index.html'
end