Module: Madride::ContextPatch::InstanceMethods

Defined in:
lib/madride/context_patch.rb

Instance Method Summary collapse

Instance Method Details

#evaluate(path, options = {}) ⇒ Object



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
43
44
45
# File 'lib/madride/context_patch.rb', line 17

def evaluate(path, options = {})
  pathname   = resolve(path)
  attributes = environment.attributes_for(pathname)
  processors = options[:processors] || attributes.processors

  if options[:data]
    result = options[:data]
  else
    if environment.respond_to?(:default_external_encoding)
      mime_type = environment.mime_types(pathname.extname)
      encoding  = environment.encoding_for_mime_type(mime_type)
      result    = Sprockets::Utils.read_unicode(pathname, encoding)
    else
      result = Sprockets::Utils.read_unicode(pathname)
    end
  end

  processors.each do |processor|
    begin
      template = processor.new(pathname.to_s) { result }
      result = template.render(self, self.class.locals)
    rescue Exception => e
      annotate_exception! e
      raise
    end
  end

  result
end