summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-20 06:36:57 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-20 06:36:57 +0000
commit0516a3378f03e8563350b8c4fe94ac3f9e9c9f75 (patch)
treea285bd7b3433600fc89f0a17d8b9d4e2b709613b
parent0f4978d5335b6e9fc04ff938966905f24688ff25 (diff)
* lib/erb.rb: revert r53123. It break compatibility like thor and rspec-rails.
We should try with Ruby 2.4 or 3.0. [Bug #11842][ruby-core:72374] * lib/rdoc/erb_partial.rb: ditto. * template/verconf.h.tmpl: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--lib/erb.rb10
-rw-r--r--lib/rdoc/erb_partial.rb2
-rw-r--r--template/verconf.h.tmpl4
4 files changed, 16 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 6a5d7d9bf3..2e0240ee85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Sun Dec 20 15:36:46 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
+
+ * lib/erb.rb: revert r53123. It break compatibility like thor and rspec-rails.
+ We should try with Ruby 2.4 or 3.0.
+ [Bug #11842][ruby-core:72374]
+ * lib/rdoc/erb_partial.rb: ditto.
+ * template/verconf.h.tmpl: ditto.
+
Sun Dec 20 11:43:31 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (parser_yylex): allow here documents in labeled
diff --git a/lib/erb.rb b/lib/erb.rb
index b876ca4625..73fc574314 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -590,7 +590,7 @@ class ERB
end
def add_insert_cmd(out, content)
- out.push("#{@insert_cmd}((#{content}))")
+ out.push("#{@insert_cmd}((#{content}).to_s)")
end
# Compiles an ERB template into Ruby code. Returns an array of the code
@@ -835,10 +835,10 @@ class ERB
# requires the setup of an ERB _compiler_ object.
#
def set_eoutvar(compiler, eoutvar = '_erbout')
- compiler.put_cmd = "#{eoutvar}.push"
- compiler.insert_cmd = "#{eoutvar}.push"
- compiler.pre_cmd = ["#{eoutvar} = []"]
- compiler.post_cmd = ["#{eoutvar}.join.force_encoding(__ENCODING__)"]
+ compiler.put_cmd = "#{eoutvar}.concat"
+ compiler.insert_cmd = "#{eoutvar}.concat"
+ compiler.pre_cmd = ["#{eoutvar} = ''"]
+ compiler.post_cmd = ["#{eoutvar}.force_encoding(__ENCODING__)"]
end
# Generate results and print them. (see ERB#result)
diff --git a/lib/rdoc/erb_partial.rb b/lib/rdoc/erb_partial.rb
index ebb8cb3117..d17dda20a9 100644
--- a/lib/rdoc/erb_partial.rb
+++ b/lib/rdoc/erb_partial.rb
@@ -12,7 +12,7 @@ class RDoc::ERBPartial < ERB
def set_eoutvar compiler, eoutvar = '_erbout'
super
- compiler.pre_cmd = ["#{eoutvar} ||= []"]
+ compiler.pre_cmd = ["#{eoutvar} ||= ''"]
end
end
diff --git a/template/verconf.h.tmpl b/template/verconf.h.tmpl
index 9e09b776ea..9325aee0ff 100644
--- a/template/verconf.h.tmpl
+++ b/template/verconf.h.tmpl
@@ -52,7 +52,7 @@
% R["exec_prefix"] = '"RUBY_EXEC_PREFIX"'
% R["prefix"] = '"RUBY_EXEC_PREFIX"'
% exec_prefix_pat = /\A"#{Regexp.quote(rbconfig::CONFIG['exec_prefix'])}(?=\/|\z)/
-% _erbout = [_erbout.join.gsub!(/^(#define\s+(\S+)\s+)(.*)/) {
+% _erbout.gsub!(/^(#define\s+(\S+)\s+)(.*)/) {
% pre, name, repl = $1, $2, $3
% pat = %["#{name}"]
% c = C.merge(R.reject {|key, value| key == name or value.include?(pat)})
@@ -60,4 +60,4 @@
% repl.gsub!(/^""(?!$)|(.)""$/, '\1')
% repl.sub!(exec_prefix_pat, 'RUBY_EXEC_PREFIX"')
% pre + repl
-% }]
+% }