Class: Mullet::HTML::TemplateParser

Inherits:
Object
  • Object
show all
Defined in:
lib/mullet/html/template_parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(loader) ⇒ TemplateParser

Returns a new instance of TemplateParser.



9
10
11
# File 'lib/mullet/html/template_parser.rb', line 9

def initialize(loader)
  @loader = loader
end

Instance Method Details

#parse(source) ⇒ Template

Parses template from string.

Parameters:

  • source (String)

    string to parse

Returns:



18
19
20
21
22
23
# File 'lib/mullet/html/template_parser.rb', line 18

def parse(source)
  template_builder = TemplateBuilder.new(@loader)
  parser = Parser::SimpleParser.new(template_builder)
  parser.parse(source)
  return template_builder.template
end

#parse_file(file_name, id) ⇒ Template

Parses template from file.

Parameters:

  • file_name (String)

    name of file containing template

  • id (String)

    If ‘nil`, then the template is the entire file, otherwise the template is the content of the element having an `id` attribute value equal to this argument.

Returns:



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/mullet/html/template_parser.rb', line 34

def parse_file(file_name, id)
  template_builder = TemplateBuilder.new(@loader)
  handler = (id == nil) ?
      template_builder : FilteredElementHandler.new(template_builder, id)

  parser = Parser::SimpleParser.new(handler)
  File.open(file_name) do |file|
    parser.parse(file)
  end

  return template_builder.template
end