@@ -25,7 +25,7 @@ def render_to_string(view_name, locals = {})
2525 filename = File . join 'app' , 'views' , controller_name , "#{ view_name } .html.erb"
2626 template = File . read filename
2727 eruby = Erubis ::Eruby . new ( template )
28- eruby . result locals . merge ( env : env )
28+ eruby . result ( view_object . instance_eval { binding } )
2929 end
3030
3131 def response ( text , status = 200 , headers = { } )
@@ -40,14 +40,20 @@ def get_response
4040 end
4141
4242 def render ( view_name , locals = { } )
43+ view = Tinyrails ::View . new ( @env )
44+
4345 controller_vars = { }
4446 instance_variables . each do |var |
4547 next if var == :@env || var == :@request || var == :@response
46- key = var . to_s . gsub ( '@' , '' ) . to_sym
47- controller_vars [ key ] = instance_variable_get ( var )
48+ value = instance_variable_get ( var )
49+ view . isntance_variable_set ( var , value )
50+ end
51+
52+ locals . each do |k , v |
53+ view . instance_variable_set ( "#{ k } " , v )
4854 end
4955
50- response ( render_to_string ( view_name , locals . merge ( controller_vars ) ) )
56+ response ( render_to_string ( view_name , view ) )
5157 end
5258
5359 def request
0 commit comments