diff options
Diffstat (limited to 'lib/erubis/helpers/rails_helper.rb')
-rw-r--r-- | lib/erubis/helpers/rails_helper.rb | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/lib/erubis/helpers/rails_helper.rb b/lib/erubis/helpers/rails_helper.rb index d0155b1..0b02086 100644 --- a/lib/erubis/helpers/rails_helper.rb +++ b/lib/erubis/helpers/rails_helper.rb @@ -87,19 +87,16 @@ module Erubis module TemplateConverter ## covert eRuby string into ruby code - def _convert_template(template, view_obj=nil) # :nodoc: + def _convert_template(template) # :nodoc: #src = ::Erubis::Eruby.new(template).src klass = ::Erubis::Helpers::RailsHelper.engine_class properties = ::Erubis::Helpers::RailsHelper.init_properties show_src = ::Erubis::Helpers::RailsHelper.show_src show_src = ENV['RAILS_ENV'] == 'development' if show_src.nil? - logger = view_obj ? view_obj.controller.logger : self.logger if show_src ## preprocessing if ::Erubis::Helpers::RailsHelper.preprocessing - preprocessor = PreprocessingEruby.new(template, :escape=>true) - #template = self.instance_eval(preprocessor.src) - self_ = view_obj ? view_obj.controller.instance_variable_get('@template') : self - template = preprocessor.evaluate(self_) + preprocessor = _create_preprocessor(template) + template = preprocessor.evaluate(_preprocessing_context_object()) logger.info "** Erubis: preprocessed==<<'END'\n#{template}END\n" if show_src end ## convert into ruby code @@ -108,6 +105,12 @@ module Erubis logger.info "** Erubis: src==<<'END'\n#{src}END\n" if show_src return src end + def _create_preprocessor(template) + return PreprocessingEruby.new(template, :escape=>true) + end + def _preprocessing_context_object + return self + end end end @@ -143,7 +146,13 @@ if ActionPack::VERSION::MAJOR >= 2 ### Rails 2.X include ::Erubis::Helpers::RailsHelper::TemplateConverter include ::Erubis::PreprocessingHelper def compile(template) - return _convert_template(template, @view) + return _convert_template(template) + end + def logger + return @view.controller.logger + end + def _preprocessing_context_object + return @view.controller.instance_variable_get('@template') end end end |