summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormakoto kuwata <kwa@kuwata-lab.com>2008-04-29 12:40:14 +0000
committermakoto kuwata <kwa@kuwata-lab.com>2008-04-29 12:40:14 +0000
commitfa5be13289315103cacaef99390b0ef27f3d9e9c (patch)
treea720313e12a37b36843d16385361f9a6349090dc
parent053af9263464a0556378fd052f8f7bb73168ce43 (diff)
downloaderubis-fa5be13289315103cacaef99390b0ef27f3d9e9c.tar.gz
- [add] preprocessing.rb
- [change] rails_helper.rb: move Preprocessing class and helper methods into preprocessing.rb
-rw-r--r--ChangeLog.txt4
-rw-r--r--lib/erubis/helpers/rails_helper.rb36
-rw-r--r--lib/erubis/preprocessing.rb59
3 files changed, 67 insertions, 32 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt
index df6a22d..768b9cd 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -2,6 +2,10 @@
.?lastupdate: $Date$
.?version: $Rev$
+: Rev.102 (2008-04-29)
+ .- [add] preprocessing.rb
+ .- [change] rails_helper.rb: move Preprocessing class and helper methods into preprocessing.rb
+
: Rev.101 (2008-04-29)
.- [change] bench/bench.rb: Ruby 1.9 support
diff --git a/lib/erubis/helpers/rails_helper.rb b/lib/erubis/helpers/rails_helper.rb
index 63dc1b7..9deb4bf 100644
--- a/lib/erubis/helpers/rails_helper.rb
+++ b/lib/erubis/helpers/rails_helper.rb
@@ -6,7 +6,7 @@
require 'erubis'
-require 'cgi'
+require 'erubis/preprocessing'
module Erubis
@@ -76,7 +76,7 @@ module Erubis
@@show_src = flag
end
- ##----- preprocessing --------------------
+ #cattr_accessor :preprocessing
@@preprocessing = false
def self.preprocessing
@@preprocessing
@@ -84,18 +84,6 @@ module Erubis
def self.preprocessing=(flag)
@@preprocessing = flag
end
- class PreprocessingEruby < Erubis::Eruby
- def initialize(input, params={})
- params = params.dup
- params[:pattern] = '\[% %\]' # use '[%= %]' instead of '<%= %>'
- params[:escape] = true # transport '[%= %]' and '[%== %]'
- super
- end
- def add_expr_escaped(src, code)
- add_expr_literal(src, "_decode((#{code}))")
- end
- end
- ##----------------------------------------
end
@@ -235,6 +223,7 @@ end
## set Erubis as eRuby compiler in Ruby on Rails instead of ERB
class ActionView::Base # :nodoc:
+ include Erubis::PreprocessingHelper
private
def convert_template_into_ruby_code(template)
#src = Erubis::Eruby.new(template).src
@@ -244,7 +233,7 @@ class ActionView::Base # :nodoc:
show_src = ENV['RAILS_ENV'] == 'development' if show_src.nil?
##----- preprocessing -------------------
if Erubis::Helpers::RailsHelper.preprocessing
- preprocessor = Erubis::Helpers::RailsHelper::PreprocessingEruby.new(template)
+ preprocessor = Erubis::Helpers::RailsHelper::PreprocessingEruby.new(template, :escape=>true)
#template = self.instance_eval(preprocessor.src)
template = preprocessor.evaluate(self)
logger.debug "** Erubis: preprocessed==<<'END'\n#{template}END\n" if show_src
@@ -255,23 +244,6 @@ class ActionView::Base # :nodoc:
logger.debug "** Erubis: src==<<'END'\n#{src}END\n" if show_src
src
end
-
- ##----- preprocessing -------------------
- def _p(arg)
- return "<%=#{arg}%>"
- end
- def _P(arg)
- return "<%=h(#{arg})%>"
- end
- alias _? _p
- def _decode(arg)
- arg = arg.to_s
- arg.gsub!(/%3C%25(?:=|%3D)(.*?)%25%3E/) { "<%=#{CGI.unescape($1)}%>" }
- arg.gsub!(/&lt;%=(.*?)%&gt;/) { "<%=#{CGI.unescapeHTML($1)}%>" }
- return arg
- end
- ##----------------------------------------
-
end
diff --git a/lib/erubis/preprocessing.rb b/lib/erubis/preprocessing.rb
new file mode 100644
index 0000000..3da1d7c
--- /dev/null
+++ b/lib/erubis/preprocessing.rb
@@ -0,0 +1,59 @@
+###
+### $Rev$
+### $Release:$
+### $Copyright$
+###
+
+require 'cgi'
+
+
+module Erubis
+
+
+ ##
+ ## for preprocessing
+ ##
+ class PreprocessingEruby < Erubis::Eruby
+
+ def initialize(input, params={})
+ params = params.dup
+ params[:pattern] ||= '\[% %\]' # use '[%= %]' instead of '<%= %>'
+ #params[:escape] = true # transport '[%= %]' and '[%== %]'
+ super
+ end
+
+ def add_expr_escaped(src, code)
+ add_expr_literal(src, "_decode((#{code}))")
+ end
+
+ end
+
+
+ ##
+ ## helper methods for preprocessing
+ ##
+ module PreprocessingHelper
+
+ module_function
+
+ def _p(arg)
+ return "<%=#{arg}%>"
+ end
+
+ def _P(arg)
+ return "<%=h(#{arg})%>"
+ end
+
+ alias _? _p
+
+ def _decode(arg)
+ arg = arg.to_s
+ arg.gsub!(/%3C%25(?:=|%3D)(.*?)%25%3E/) { "<%=#{CGI.unescape($1)}%>" }
+ arg.gsub!(/&lt;%=(.*?)%&gt;/) { "<%=#{CGI.unescapeHTML($1)}%>" }
+ return arg
+ end
+
+ end
+
+
+end