Module: Deface::TemplateHelper

Included in:
Precompiler, Sources::Partial, Sources::Template
Defined in:
lib/deface/template_helper.rb

Instance Method Summary collapse

Instance Method Details

#element_source(template_source, selector) ⇒ Object

gets source erb for an element



33
34
35
36
37
38
39
# File 'lib/deface/template_helper.rb', line 33

def element_source(template_source, selector)
  doc = Deface::Parser.convert(template_source)

  doc.css(selector).inject([]) do |result, match|
    result << Deface::Parser.undo_erb_markup!(match.to_s.dup)
  end
end

#load_template_source(virtual_path, partial, apply_overrides = true) ⇒ Object

used to find source for a partial or template using virtual_path



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/deface/template_helper.rb', line 5

def load_template_source(virtual_path, partial, apply_overrides=true)
  parts = virtual_path.split("/")
  prefix = []
  if parts.size == 2
    prefix << ""
    name = virtual_path
  else
    prefix << parts.shift
    name = parts.join("/")
  end

  #this needs to be reviewed for production mode, overrides not present
  Rails.application.config.deface.enabled = apply_overrides
  @lookup_context ||= ActionView::LookupContext.new(ActionController::Base.view_paths, {:formats => [:html]})
  view = @lookup_context.disable_cache do
    @lookup_context.find(name, prefix, partial)
  end

  if view.handler.to_s == "Haml::Plugin"
    Deface::HamlConverter.new(view.source).result
  elsif view.handler.class.to_s == "Slim::RailsTemplate"
    Deface::SlimConverter.new(view.source).result
  else
    view.source
  end
end