Class: ActionviewPrecompiler::TemplateParser

Inherits:
Object
  • Object
show all
Includes:
ASTParser
Defined in:
lib/actionview_precompiler/template_parser.rb

Defined Under Namespace

Classes: FakeTemplate

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ASTParser

#fcall?, #node?, #parse

Constructor Details

#initialize(filename) ⇒ TemplateParser

Returns a new instance of TemplateParser.



19
20
21
22
23
24
25
# File 'lib/actionview_precompiler/template_parser.rb', line 19

def initialize(filename)
  @filename = filename
  @basename = File.basename(filename)
  handler_ext = @basename.split(".").last
  @handler = ActionView::Template.handler_for_extension(handler_ext)
  @is_partial = !!@basename.start_with?("_")
end

Instance Attribute Details

#basenameObject (readonly)

Returns the value of attribute basename.



7
8
9
# File 'lib/actionview_precompiler/template_parser.rb', line 7

def basename
  @basename
end

#filenameObject (readonly)

Returns the value of attribute filename.



7
8
9
# File 'lib/actionview_precompiler/template_parser.rb', line 7

def filename
  @filename
end

#handlerObject (readonly)

Returns the value of attribute handler.



7
8
9
# File 'lib/actionview_precompiler/template_parser.rb', line 7

def handler
  @handler
end

Instance Method Details

#compiled_sourceObject



39
40
41
# File 'lib/actionview_precompiler/template_parser.rb', line 39

def compiled_source
  @handler.call(FakeTemplate.new, File.read(@filename))
end

#parsedObject



35
36
37
# File 'lib/actionview_precompiler/template_parser.rb', line 35

def parsed
  @parsed ||= parse(compiled_source)
end

#partial?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/actionview_precompiler/template_parser.rb', line 27

def partial?
  @is_partial
end

#render_callsObject



31
32
33
# File 'lib/actionview_precompiler/template_parser.rb', line 31

def render_calls
  RenderParser.new(parsed).render_calls
end