Class: SWS::TemplateParser
- Inherits:
-
Object
- Object
- SWS::TemplateParser
- Defined in:
- lib/sws/parsers.rb
Overview
Parser for HTML templates of the components.
Constant Summary collapse
- @@file_data =
{}
Instance Method Summary collapse
-
#initialize(filename) ⇒ TemplateParser
constructor
Creates new TemplateParser for given filename.
-
#parse ⇒ Object
Main parsing method - parses definition file into the tree of TemplateToken objects.
Constructor Details
#initialize(filename) ⇒ TemplateParser
Creates new TemplateParser for given filename.
114 115 116 117 118 119 |
# File 'lib/sws/parsers.rb', line 114 def initialize ( filename ) $log_sws_parser.debug( "Creating template parser for name #{filename}" ) @template_filename = filename end |
Instance Method Details
#parse ⇒ Object
Main parsing method - parses definition file into the tree of TemplateToken objects
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/sws/parsers.rb', line 124 def parse () begin #TODO: implement debug mode which forces sws to reload # template file every time parse() is called unless( @@file_data[ @template_filename ] ) @@file_data[ @template_filename ] = File.read( @template_filename ) end template_data = @@file_data[ @template_filename ] rescue Exception raise "Cannot read template data from file \"#{@template_filename}\"" end tokenized_data = template_data.scan( /<!--.*?-->|<[^<>]+>|[^<>]+/ ) root_token = create_token_tree( tokenized_data ) return root_token end |