Sha256: 712ab83252819998118aa91c9954ead9d65a1684ab13873b930baeb1ce6d31f8
Contents?: true
Size: 969 Bytes
Versions: 3
Compression:
Stored size: 969 Bytes
Contents
module ActionView #:nodoc: module TemplateHandlers #:nodoc: class Erector < TemplateHandler def self.line_offset 2 end attr_reader :view def initialize(view) @view = view end def compilable? true end undef :compile ActionView::Base.register_template_handler :rb, ActionView::TemplateHandlers::Erector def render(template, local_assigns) relative_path_parts = view.first_render.split('/') file_name = relative_path_parts.last require_dependency(view.template_file_path) dot_rb = /\.rb$/ widget_class = relative_path_parts.inject(Views) do |mod, node| mod.const_get(node.gsub(dot_rb, '').gsub(".html", "").camelize) end render_method = view.is_partial_template? ? 'render_partial' : 'render' widget = widget_class.new(view, view.assigns) widget.to_s(render_method) end end end end
Version data entries
3 entries across 3 versions & 2 rubygems