Module: ActionviewPrecompiler

Defined in:
lib/actionview_precompiler.rb,
lib/actionview_precompiler/version.rb,
lib/actionview_precompiler/precompiler.rb,
lib/actionview_precompiler/render_parser.rb,
lib/actionview_precompiler/parsed_filename.rb,
lib/actionview_precompiler/template_parser.rb,
lib/actionview_precompiler/ast_parser/jruby.rb,
lib/actionview_precompiler/ast_parser/ruby26.rb

Defined Under Namespace

Modules: ASTParser Classes: Error, ParsedFilename, Precompiler, RenderCall, RenderParser, TemplateParser

Constant Summary collapse

VERSION =
"0.2.2"

Class Method Summary collapse

Class Method Details

.precompile(verbose: false) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/actionview_precompiler.rb', line 11

def self.precompile(verbose: false)
  target = ActionController::Base # fixme
  view_paths = target.view_paths
  lookup_context = ActionView::LookupContext.new(view_paths)
  paths = view_paths.map(&:path)
  precompiler = Precompiler.new(paths)

  mod = target.view_context_class
  count = 0
  precompiler.each_lookup_args do |args|
    templates = lookup_context.find_all(*args)
    templates.each do |template|
      puts "precompiling: #{template.inspect}" if verbose
      count += 1
      template.send(:compile!, mod)
    end
  end

  if verbose
    puts "Precompiled #{count} Templates"
  end
end