Module: ATD::Compilation

Defined in:
lib/atd/routes.rb

Overview

This module holds everything related to the compilation of routes.

Defined Under Namespace

Modules: Compiler, Precompiler

Class Method Summary collapse

Class Method Details

.compile(name, contents) ⇒ Object

This method is responsible for live compilation.



26
27
28
29
30
31
32
33
34
35
# File 'lib/atd/routes.rb', line 26

def self.compile(name, contents)
  return contents if name.nil? && !contents.is_a?(File)
  name = File.basename(contents) if contents.is_a?(File)
  name = name.split(".")
  extensions = name - [name.first]
  extensions.each do |extension|
    contents = Compiler.send(extension, contents) if Compiler.filetypes.include? extension.to_sym
  end
  contents
end

.pre_parse(route) ⇒ Object

This method is responsible for precompilation



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/atd/routes.rb', line 38

def self.pre_parse(route)
  output = route.output
  name = output
  return nil if output.nil?
  if output.include?(".") || output.is_a?(File)
    name = (output.is_a?(File) ? File.basename(output) : output)
    file = read_file(output)
    return name if file.nil?
    file = precompile(name, file)
    route.output = file
  end
  name
end