class Assette::TemplateSet
Attributes
templates[R]
Public Class Methods
new(*location)
click to toggle source
# File lib/assette/template_set.rb, line 18 def initialize *location if location.size == 1 location = location.pop end if location.is_a?(Array) location = 'all' if location.include?(:all) || location.include?('all') else location = location.to_s end path = Assette.config.templates_path if location == 'all' dirs = [File.join(path,'*')] elsif location.is_a?(Array) dirs = location.collect do |l| File.join(path,l) end else dirs = [File.join(path,location)] end @paths = [] dirs.each do |dir| @paths += Dir[File.join(dir,'*')] end @templates = @paths.collect do |p| Template.open(p) end end
Public Instance Methods
compile(opts={})
click to toggle source
# File lib/assette/template_set.rb, line 51 def compile(opts={}) coffee = Array.new vars = storage_variable used = [] vars.each do |var| used << var if used.size == 1 str = "window[#{var.to_json}] ||= {}" else str = used.join('.') str << " ||= {}" end coffee << str end templates.each do |template| coffee << template.compile end t = Assette::Reader::Coffee.compile_str(coffee.join("\n")) pre = Assette.preloader_code unless opts[:no_preloader] pre ? [pre,t].join("\n") : t end
storage_variable()
click to toggle source
# File lib/assette/template_set.rb, line 79 def storage_variable format = Assette.config.template_format if m = format.match(/^([\w\.]+)\[/) vars = m[1].split('.') else [] end end