class Opal::Rails::TemplateHandler
Public Class Methods
call(template, source = template.source)
click to toggle source
# File lib/opal/rails/template_handler.rb, line 7 def self.call(template, source = template.source) new.call(template, source) end
Public Instance Methods
call(template, source = template.source)
click to toggle source
# File lib/opal/rails/template_handler.rb, line 11 def call(template, source = template.source) escaped = source.gsub(':', '\:') string = '%q:' + escaped + ':' <<-RUBY config = ::Rails.application.config.opal code = [] code << 'Object.new.instance_eval {' if config.assign_locals_in_templates? code << ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(local_assigns)).map { |key, val| "\#{key} = \#{val.inspect};" }.join end if config.assign_instance_variables_in_templates? code << ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(@_assigns)).map { |key, val| "@\#{key} = \#{val.inspect};" }.join end code << #{string} code << '}' Opal.compile(code.join("\n")) RUBY end