Sha256: 91583e563fa962874d1a298d62f5dd106ab47c446d2341f70bfb1174bb73464f
Contents?: true
Size: 871 Bytes
Versions: 7
Compression:
Stored size: 871 Bytes
Contents
module Opal module Rails class TemplateHandler def self.call(template) new.call(template) end def call(template) escaped = template.source.gsub(':', '\:') string = '%q:' + escaped + ':' <<-RUBY code = [] code << 'Object.new.instance_eval {' if ::Rails.application.config.opal.assigns_in_templates code << JSON.parse(local_assigns.to_json).map { |key, val| "\#{key} = \#{val.inspect};" }.join code << JSON.parse(@_assigns.to_json).map { |key, val| "@\#{key} = \#{val.inspect};" }.join end code << #{string} code << '}' Opal.compile(code.join("\n")) RUBY end end end end ActiveSupport.on_load(:action_view) do ActionView::Template.register_template_handler :opal, Opal::Rails::TemplateHandler end
Version data entries
7 entries across 7 versions & 1 rubygems