summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormakoto kuwata <kwa@kuwata-lab.com>2009-02-08 10:24:08 +0000
committermakoto kuwata <kwa@kuwata-lab.com>2009-02-08 10:24:08 +0000
commitf8ded7ae98acda83aa5a2b4e2bc7406d613c6e6c (patch)
treee29617af2369dfea088d7ed9ab6d72c85624aa77
parenta447c71f74410e61ded45fb623f33e596fee8860 (diff)
downloaderubis-f8ded7ae98acda83aa5a2b4e2bc7406d613c6e6c.tar.gz
- [enhance] Rails 2.2 support
-rw-r--r--ChangeLog.txt6
-rw-r--r--lib/erubis/helpers/rails_helper.rb37
2 files changed, 39 insertions, 4 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt
index 72c92dc..db596a8 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -2,6 +2,12 @@
.?lastupdate: $Date$
.?version: $Rev$
+: Rev.125 (2009-02-08)
+ .- [enhance] Rails 2.2 support
+
+: Rev.124 (2009-02-07)
+ .- [release] 2.6.3
+
: Rev.123 (2009-02-07)
.- [change] packages are now built under 'build' directory
.- [change] year of copyright is changed to '2006-2009'.
diff --git a/lib/erubis/helpers/rails_helper.rb b/lib/erubis/helpers/rails_helper.rb
index 6346ba6..11a2595 100644
--- a/lib/erubis/helpers/rails_helper.rb
+++ b/lib/erubis/helpers/rails_helper.rb
@@ -97,12 +97,12 @@ module Erubis
if ::Erubis::Helpers::RailsHelper.preprocessing
preprocessor = _create_preprocessor(template)
template = preprocessor.evaluate(_preprocessing_context_object())
- logger.info "** Erubis: preprocessed==<<'END'\n#{template}END\n" if show_src
+ _logger_info "** Erubis: preprocessed==<<'END'\n#{template}END\n" if show_src
end
## convert into ruby code
src = klass.new(template, properties).src
#src.insert(0, '_erbout = ')
- logger.info "** Erubis: src==<<'END'\n#{src}END\n" if show_src
+ _logger_info "** Erubis: src==<<'END'\n#{src}END\n" if show_src
return src
end
def _create_preprocessor(template)
@@ -111,6 +111,9 @@ module Erubis
def _preprocessing_context_object
return self
end
+ def _logger_info(message)
+ logger.info message
+ end
end
end
@@ -134,11 +137,37 @@ end
require 'action_pack/version'
+rails22 = false
if ActionPack::VERSION::MAJOR >= 2 ### Rails 2.X
- if ActionPack::VERSION::MINOR >=1 ### Rails 2.1 or higher
+ if ActionPack::VERSION::MINOR >=2 ### Rails 2.2 or higher
+
+ rails22 = true
+ module ActionView
+ module TemplateHandlers
+ class ErubisHandler < TemplateHandler
+ include Compilable
+ include ::Erubis::Helpers::RailsHelper::TemplateConverter
+ include ::Erubis::PreprocessingHelper
+ def compile(template)
+ #src = ::ERB.new("<% __in_erb_template=true %>#{template.source}", nil, erb_trim_mode, '@output_buffer').src
+ return _convert_template("<% __in_erb_template=true %>#{template.source}")
+ end
+ end
+ end
+ handler_klass = TemplateHandlers::ErubisHandler
+ Template.register_default_template_handler :erb, handler_klass
+ Template.register_template_handler :rhtml, handler_klass
+ end
+ module Erubis::Helpers::RailsHelper::TemplateConverter
+ def _logger_info(message)
+ $stderr.puts message # logger.info seems not available in Rails 2.2
+ end
+ end
+
+ elsif ActionPack::VERSION::MINOR >=1 ### Rails 2.1
module ActionView
module TemplateHandlers # :nodoc:
@@ -322,4 +351,4 @@ end ###
## finish
ac = ActionController::Base.new
ac.logger.info "** Erubis #{::Erubis::VERSION}"
-#$stdout.puts "** Erubis #{::Erubis::VERSION}"
+$stdout.puts "** Erubis #{::Erubis::VERSION}" if rails22