Skip to content

Commit 9b084d7

Browse files
pbolingkou
andauthored
Fix & Deprecate REXML::Text#text_indent (#275)
- Fixes #273 - "Fix" in the sense that it restores the original behavior pre-v3.2.6, regardless of its fitness for purpose. - Regression Test Added --------- Co-authored-by: Sutou Kouhei <[email protected]>
1 parent 04a589a commit 9b084d7

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

lib/rexml/child.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def document
8888

8989
# This doesn't yet handle encodings
9090
def bytes
91-
document.encoding
91+
document&.encoding
9292

9393
to_s
9494
end

lib/rexml/text.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,10 @@ def wrap(string, width, addnewline=false)
269269
end
270270

271271
def indent_text(string, level=1, style="\t", indentfirstline=true)
272+
Kernel.warn("#{self.class.name}#indent_text is deprecated. See REXML::Formatters", uplevel: 1)
272273
return string if level < 0
273-
new_string = ''
274+
275+
new_string = +''
274276
string.each_line { |line|
275277
indent_string = style * level
276278
new_line = (indent_string + line).sub(/[\s]+$/,'')

test/test_text.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
module REXMLTests
44
class TextTester < Test::Unit::TestCase
5+
include Helper::Global
56
include REXML
67

78
def test_new_text_response_whitespace_default
@@ -69,5 +70,12 @@ def test_clone
6970
assert_equal(text.to_s,
7071
text.clone.to_s)
7172
end
73+
74+
def test_indent_text
75+
text = Text.new("")
76+
suppress_warning do
77+
assert_equal("\tline1\tline2\tline3", text.indent_text("line1\r\nline2\r\nline3\r\n"))
78+
end
79+
end
7280
end
7381
end

0 commit comments

Comments
 (0)