class PartialCompiler::Compiler
Attributes
files[RW]
Public Class Methods
new()
click to toggle source
# File lib/partial_compiler/compiler.rb, line 7 def initialize @files = FileCopier.create_files @files.each do |file| find_partials(file) end end
Private Instance Methods
find_partials(compiled_file_path)
click to toggle source
# File lib/partial_compiler/compiler.rb, line 16 def find_partials compiled_file_path text = File.open(compiled_file_path).read compiled_content = "" text.each_line do |line| compiled_content += read_each_line(line, compiled_file_path) end compiled_content.to_s.force_encoding('UTF-8') File.open(compiled_file_path, "w") {|file| file.puts compiled_content } end
generate_locals(locals, original_line, indentation)
click to toggle source
# File lib/partial_compiler/compiler.rb, line 38 def generate_locals locals, original_line, indentation if locals condensed_locals = locals.map{|local, value| "#{local}=#{get_local_value(local, original_line)}"}.join(";") return "#{(" " * indentation)}<% #{condensed_locals} %>" else return nil end end
get_local_value(local, original_line)
click to toggle source
# File lib/partial_compiler/compiler.rb, line 47 def get_local_value local, original_line find_value_of_local = /#{local}:([^,}]*)/ original_line.match(find_value_of_local)[-1] end
read_each_line(line, compiled_file_path)
click to toggle source
# File lib/partial_compiler/compiler.rb, line 26 def read_each_line line, compiled_file_path if line.include? PartialCompiler.config[:rendering_engine_partial_format] the_partial = PartialReader.new(line, compiled_file_path) if the_partial.contents locals_line = generate_locals(the_partial.locals, line, the_partial.indentation) content_with_locals = [locals_line, the_partial.contents].compact.join("\n") return content_with_locals end end line end