Module: Pufferfish::Parser
- Defined in:
- lib/pufferfish.rb
Overview
Parser
Class Method Summary collapse
-
.parse_file(file, base_dir) ⇒ Object
Parses html.
Class Method Details
.parse_file(file, base_dir) ⇒ Object
Parses html
### Params file: String
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/pufferfish.rb', line 8 def self.parse_file(file, base_dir) contents = File.read(file) # ^\\ -> don't count escape characters \% # ? -> smallest possible match contents = contents.gsub(/%(.*?[^\\])%/) { |_| match = Regexp.last_match.captures file = match[0] file = file if file != "" # Append file extension (TODO: set in config) if not (file =~ /.*\..*/) file.concat(".html") end # Parse base dir if not base_dir.nil? if file =~ /\A\/.*\z/ # ? parse_file(file, base_dir) elsif base_dir =~ /\A.*\/\z/ parse_file("#{base_dir}#{file}", base_dir) else parse_file("#{base_dir}/#{file}", base_dir) end else parse_file(file, base_dir) end else STDERR.puts "found empty template identifier %%. If this is intential, consider escaping: \\%\\%" end } # Replace escape characters and return contents.gsub(/\\%/, "%") end |