| In: |
lib/action_view/abstract_template.rb
lib/action_view/helpers/active_record_helper.rb |
| Parent: | Object |
| assigns | [RW] | |
| base_path | [RW] | |
| controller | [RW] | |
| first_render | [R] | |
| template_extension | [RW] |
# File lib/action_view/abstract_template.rb, line 12
12: def self.load_helpers(helper_dir)
13: Dir.foreach(helper_dir) do |helper_file|
14: next unless helper_file =~ /_helper.rb$/
15: require helper_dir + helper_file
16: helper_module_name = helper_file.capitalize.gsub(/_([a-z])/) { |m| $1.capitalize }[0..-4]
17:
18: class_eval("include ActionView::Helpers::#{helper_module_name}") if Helpers.const_defined?(helper_module_name)
19: end
20: end
# File lib/action_view/abstract_template.rb, line 22
22: def initialize(base_path = nil, assigns_for_first_render = {}, controller = nil)
23: @base_path, @template_extension, @assigns = base_path, template_extension, assigns_for_first_render
24: @controller = controller
25: @template_extension = "rhtml"
26: end
# File lib/action_view/abstract_template.rb, line 28
28: def render_file(template_path, use_full_path = true, local_assigns = {})
29: @first_render = template_path if @first_render.nil?
30: template_file_name = use_full_path ? full_template_path(template_path) : template_path
31: template_source = read_template_file(template_file_name)
32:
33: begin
34: render_template(template_source, local_assigns)
35: rescue Exception => e
36: if TemplateError === e
37: e.sub_template_of(template_file_name)
38: raise e
39: else
40: raise TemplateError.new(@base_path, template_file_name, @assigns, template_source, e)
41: end
42: end
43: end
# File lib/action_view/abstract_template.rb, line 45
45: def render(template_path, local_assigns = {})
46: render_file(template_path, true, local_assigns)
47: end
# File lib/action_view/abstract_template.rb, line 49
49: def render_partial(partial_name, object = nil, local_assigns = {})
50: object ||= controller.instance_variable_get("@#{partial_name}")
51: render("#{controller.send(:controller_name)}/_#{partial_name}", { partial_name => object }.merge(local_assigns))
52: end
# File lib/action_view/abstract_template.rb, line 54
54: def render_collection_of_partials(partial_name, collection, partial_spacer_template = nil)
55: collection_of_partials = collection.collect { |element| render_partial(partial_name, element) }
56: partial_spacer_template ?
57: collection_of_partials.join(render("#{controller.send(:controller_name)}/_#{partial_spacer_template}")) :
58: collection_of_partials
59: end
Must be implemented by concrete template class
# File lib/action_view/abstract_template.rb, line 62
62: def render_template(template) end