forked from lokka/lokka
-
Notifications
You must be signed in to change notification settings - Fork 0
/
render_helper.rb
53 lines (47 loc) · 1.27 KB
/
render_helper.rb
1
2
3
4
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
module Lokka
module RenderHelper
def render_detect(*names)
render_detect_with_options(names)
end
def render_detect_with_options(names, options = {})
ret = ''
names.each do |name|
out = render_any(name, options)
unless out.blank?
ret = out
break
end
end
if ret.blank?
raise Lokka::NoTemplateError, "Template not found. #{[names.join(', ')]}"
else
ret
end
end
def partial(name, options = {})
options[:layout] = false
render_any(name, options)
end
def render_any(name, options = {})
ret = ''
templates = settings.supported_templates + settings.supported_stylesheet_templates +
settings.supported_javascript_templates
templates.each do |ext|
out = rendering(ext, name, options)
out.force_encoding(Encoding.default_external) unless out.nil?
unless out.blank?
ret = out
break
end
end
ret
end
def rendering(ext, name, options = {})
options[:views] ||= "#{settings.views}/theme/#{@theme.name}"
path = "#{options[:views]}/#{name}"
if File.exist?("#{path}.#{ext}")
send(ext.to_sym, name.to_sym, options)
end
end
end
end